• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Suche Lösungsvorschläge für eine Art Zahlendrehschloß

cylle

New member
[GELÖST] Suche Lösungsvorschläge für eine Art Zahlendrehschloß

Hallo,

ich beschäftige mich im Moment mit einem Projekt das vom Prinzip wie ein Zahlendrehschloß fuktionieren soll.

Das bedeutet wie man hier sehen kann, dass ich drei Felder habe, in denen Werte aus unterschiedlichen Arrays angezeigt werden.
Diese soll der Benutzer vor oder zurück "drehen", bzw zufällig einstellen können.

Nun bin ich auf der Suche nach einer Lösung für das vor oder zurück.

Mein Ansatz war, dass ich den aktuellen Wert aus dem Textfeld auslesen lasse, dann mit einer for-Schleife die Arrayposition ermittle um dann diesen Wert um eins zu erhöhen oder zu senken und wieder in das Textfeld auszugeben.

Code:
function Feld1b() {		//Versuch: eins zurück für das Feld 1 (linkes Textfeld / Adjektive)
			  Variable1b=document.getElementByName("V1");		
			  for (var i = 0; i < x1max; i++)					
			  { if (AdjektivList[i] == Variable1b) {x=i;}}		
					  if(x==0)
							{x=x1max;}
					  else{x-=1;}
			  document.Ausgabe.V1.value=AdjektivList[x]; }

Meine bisherigen Versuche sind leider nicht erfolgreich, deshalb bin ich für jeden Lösungsvorschlag dankbar.

Ich glaube dass das Problem nicht sonderlich schwer ist, aber da ich mich erst seit kurzem mit Java-Script beschäftige ist es das für mich leider schon.

Vielen Danke für die Aufmerksamkeit!
 
Zuletzt bearbeitet:
Dein Ansatz war schon sehr gut. Das Problem ist nur, dass es keine Funktion getElementByName() gibt, sondern nur getElementsByName(). Außerdem musst Du den Value herausziehen. Für diesen Zweck passender ist es jedoch, wenn Du mit IDs arbeitest:
Code:
     function Feld1b() {       //Versuch: eins zurück für das Feld 1 (linkes Textfeld / Adjektive)
         textele = document.getElementById("V1");
         Variable1b = textele.value;
         for (var i = 0; i < x1max; i++)
         { if (AdjektivList[i] == Variable1b) { x = i; } }
         if (x == 0)
         { x = x1max - 1; }
         else { x -= 1; }
         textele.value = AdjektivList[x];
     }
Außerdem musst Du { x = x1max - 1; } verwenden, weil Du sonst die Feldgrenze überschreitest.
HTML:
<td><input value="sieben" size="20" id="V1" type="text"></td>
Du kannst das ganze noch etwas kompakter machen, wenn Du für jede Aktion nur eine Funktion verwendest und dieser die ID übergibst:
Code:
     function zurueckFeld(idtext) {       //Versuch: eins zurück für das Feld 1 (linkes Textfeld / Adjektive)
         textele = document.getElementById(idtext);
         var val = textele.value;
         for (var i = 0; i < x1max; i++)
         { if (AdjektivList[i] == val) { x = i; } }
         if (x == 0)
         { x = x1max - 1; }
         else { x -= 1; }
         textele.value = AdjektivList[x];
     }
HTML:
<td><input value=" zurück " onclick='zurueckFeld("V1")' type="button"></td>
<td><input value=" zurück " onclick='zurueckFeld("V2")' type="button"></td>
<td><input value=" zurück " onclick='zurueckFeld("V3")' type="button"></td>

- - - Aktualisiert - - -

PS: Ich sehe gerade, dass Du für jedes Feld ein anderes Array brauchst. Das kannst Du lösen, indem Du das Array ebenfalls als Parameter übergibst.
 
Zuletzt bearbeitet:
Wow, ich bin begeistert!!! Vielen Dank!

Was muss ich machen um das Thema als beantwortet zu markieren?
 
Zuletzt bearbeitet:
Zurück
Oben