Fabian: Seite hängt sich "grundlos" auf!

Hallo,
Ich habe ein kleines Problem. Ich möchte haben, dass man 5 Eingabefelder hat in welche man etwas hinein schreiben kann. Diese sollten dann nach oben aufgestockt werden, sodass es immer von oben nach unten gefüllt ist.
Bsp:
Ich schreibe:

"10"
""
"8"
"7"
""

Nach drücken eines Knopfes soll dort stehen:

"10
"8"
"7"
""
""

Diese Anwendung, natürlich mit noch viel mehr Möglichkeiten usw., habe ich bereits mit Visual Basic geschrieben und meine Überlegung wie so eine Funktion aussehen muss stimmt.
Nun wollte ich das in Javascript umschreiben, doch obwohl ich alles in Js- Sprache geändert hab, hängt sich die Seite einfach auf.

Mein code lautet:

function aufstocken() {  
  
// Werte der Eingabe Felder den Arrays zuweißen. Ich weiß es geht auch einfacher, doch so fins ich es übersichtlicher.  
				var textboxen = new Array(5)  
				textboxen[0] = document.eingabe.t1.value  
				textboxen[1] = document.eingabe.t2.value  
				textboxen[2] = document.eingabe.t3.value  
				textboxen[3] = document.eingabe.t4.value  
				textboxen[4] = document.eingabe.t5.value  
  
// leer immer wieder auf null setzen damit es auch funktioniert wenn man den Button mehrmals drückt  
				var leer = 0;  
  
// damit ich, wenn ich mehr Felder einbaue nicht soviel verändern muss  
				var anzahl = 5;  
				  
  
// schauen wie viel Felder leer sind  
				for (l = 0; l = anzahl-1; l++) {  
					if (textboxen[l] = "") {  
					leer = leer + 1};  
				};  
				  
  
// pro leeres Feld wird der oberste "for block" einmal durchlaufen  
				for (w = 1; w = leer; w++) {  
  
// Jedes leere Feld bekommt den Wert des nächten Feldes, dieses den Wert des nächsten usw.  
					for (i = 0; i = anzahl - 2; i++) {  
							if (textboxen[i] = "") {  
								textboxen[i] = textboxen(i + 1);  
								textboxen[i + 1] = "";  
							};  
					};  
				};  
				  
  
// Werte aus den Arrays werden ausgegeben  
				document.eingabe.t1.value = textboxen[0]  
				document.eingabe.t2.value = textboxen[1]  
				document.eingabe.t3.value = textboxen[2]  
				document.eingabe.t4.value = textboxen[3]  
				document.eingabe.t5.value = textboxen[4]  
}  
		

  1. Tach!

    Nun wollte ich das in Javascript umschreiben, doch obwohl ich alles in Js- Sprache geändert hab, hängt sich die Seite einfach auf.

    Die aktuellen Browser haben alle einen Javascript-Debugger an Bord oder er lässt sich als Add-On nachrüsten (FireBug). Mit diesem Debugger kannst du schrittweise durch deinen Code laufen und genau nachvollziehen, wann was in welcher Variable steht. Damit kannst du sehr schnell die Stelle finden, an der du einen typischen Anfängerfehler eingebaut hast.

    dedlfix.

    1. Tach!

      Nun wollte ich das in Javascript umschreiben, doch obwohl ich alles in Js- Sprache geändert hab, hängt sich die Seite einfach auf.

      Die aktuellen Browser haben alle einen Javascript-Debugger an Bord oder er lässt sich als Add-On nachrüsten (FireBug). Mit diesem Debugger kannst du schrittweise durch deinen Code laufen und genau nachvollziehen, wann was in welcher Variable steht. Damit kannst du sehr schnell die Stelle finden, an der du einen typischen Anfängerfehler eingebaut hast.

      dedlfix.

      Ich werds mal versuchen. Danke!

  2. Om nah hoo pez nyeetz, Fabian!

    for (i = 0; i = anzahl - 2; i++) {
      if (textboxen[i] = "") {
    textboxen[i] = textboxen(i + 1);
    textboxen[i + 1] = "";

    Textboxen ist keine Funktion, die Fehlerkonsole sollte helfen.

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. Om nah hoo pez nyeetz, Fabian!

      for (i = 0; i = anzahl - 2; i++) {
        if (textboxen[i] = "") {
      textboxen[i] = textboxen(i + 1);
      textboxen[i + 1] = "";

      Textboxen ist keine Funktion, die Fehlerkonsole sollte helfen.

      Matthias

      ja danke da hab ich vergessen die eckigen klammern zu verwenden!

  3. Hi,

    for (l = 0; l = anzahl-1; l++)

    sehr eigenartig für eine for-Schleife. Meist nimmt man als Abbruchbedingung eher einen Vergleich als eine Zuweisung, die noch dazu immer denselben Wert ergibt. Diese Schleife läuft jedenfalls endlos.

      if (textboxen[l] = "")  
    

    Auch das ist vermutlich falsch; vermutlich meintest du auch hier einen Vergleich anstatt einer Zuweisung.

      	leer = leer + 1};  
    

    Oder einfacher: leer++;

      for (w = 1; w = leer; w++)  
    

    Hmm. Ich glaube, du hast generell noch nicht den Unterschied zwischen einer Zuweisung und einem Vergleich erkannt.

      	for (i = 0; i = anzahl - 2; i++) {  
      		if (textboxen[i] = "") {  
    

    Ja, sieht stark danach aus.

      			textboxen[i] = textboxen(i + 1);  
    

    Und da hast du die falschen Klammern. Runde Klammern nach einem Bezeichner bedeuten einen Funktionsaufruf; textboxen ist aber keine Funktion.

    So long,
     Martin

    --
    Alle Tage sind gleich lang. Aber unterschiedlich breit.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi,

      for (l = 0; l = anzahl-1; l++)  
      

      sehr eigenartig für eine for-Schleife. Meist nimmt man als Abbruchbedingung eher einen Vergleich als eine Zuweisung, die noch dazu immer denselben Wert ergibt. Diese Schleife läuft jedenfalls endlos.

        if (textboxen[l] = "")  
      

      Auch das ist vermutlich falsch; vermutlich meintest du auch hier einen Vergleich anstatt einer Zuweisung.

        	leer = leer + 1};  
      

      Oder einfacher: leer++;

        for (w = 1; w = leer; w++)  
      

      Hmm. Ich glaube, du hast generell noch nicht den Unterschied zwischen einer Zuweisung und einem Vergleich erkannt.

        	for (i = 0; i = anzahl - 2; i++) {  
        		if (textboxen[i] = "") {  
      

      Ja, sieht stark danach aus.

        			textboxen[i] = textboxen(i + 1);  
      

      Und da hast du die falschen Klammern. Runde Klammern nach einem Bezeichner bedeuten einen Funktionsaufruf; textboxen ist aber keine Funktion.

      So long,
      Martin

      Brauch ich dann immer == ??

      1. Tach!

        Brauch ich dann immer == ??

        Nicht immer, nur bei einem Test auf Gleichheit, dann aber meistens. Manchmal braucht man allerdings einen Test auf Identität, dann nimmt man den Identitätsoperator, bestehend aus drei Gleichheitszeichen: ===

        Javascript und alle anderen Sprachen, deren Syntax an C angelehnt ist, verwenden ein einfaches = nur als Zuweisungsoperator.

        dedlfix.

    2. ich hab die Fehler jetzt korrigiert doch nun steht nachdem ich auf den button drücke einfach nichts mehr drin.

      Webseite mit dem script

      1. Tach!

        ich hab die Fehler jetzt korrigiert doch nun steht nachdem ich auf den button drücke einfach nichts mehr drin.
        Webseite mit dem script

        Dort ist zu sehen, dass du zwar etwas geändert hast, jedoch sind immer noch nicht alle Vergleiche mit dem Vergleichsoperator ausgestattet.

        dedlfix.

        1. Tach!

          ich hab die Fehler jetzt korrigiert doch nun steht nachdem ich auf den button drücke einfach nichts mehr drin.
          Webseite mit dem script

          Dort ist zu sehen, dass du zwar etwas geändert hast, jedoch sind immer noch nicht alle Vergleiche mit dem Vergleichsoperator ausgestattet.

          dedlfix.

          Muss bei if auch ein Vergleichsoperator hin??

          1. Muss bei if auch ein Vergleichsoperator hin??

            Du willst ausdrücken "wenn x gleich oder ungleich y", also ist natürlich auch das ein Vergleich.

        2. Tach!

          ich hab die Fehler jetzt korrigiert doch nun steht nachdem ich auf den button drücke einfach nichts mehr drin.
          Webseite mit dem script

          Dort ist zu sehen, dass du zwar etwas geändert hast, jedoch sind immer noch nicht alle Vergleiche mit dem Vergleichsoperator ausgestattet.

          dedlfix.

          Danke für deine Hilfe jetzt funktioniert es.

          1. Om nah hoo pez nyeetz, Fabian!

            Danke für deine Hilfe jetzt funktioniert es.

            Bitte zitiere nur das, worauf du dich konkret beziehst. TOFU und Co. sind hier nicht notwendig.

            Matthias

            --
            1/z ist kein Blatt Papier.