• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Javascript - Überprüfung während Formulareingabe

VDuc

Neues Mitglied
Hallo Community!

Ich bin recht neu hier und versuche mich gerade an Javascript ;)

Ich habe folgendes Problem. Ich will eine Art Vokabeltrainer machen. Nun, der Besucher gibt die Übersetzung ein und es wird kontrolliert, ob es stimmt.

HTML:
function kontrolle() {            
var texteingabe = document.Form1.Eingabe.value; 
           
while (texteingabe!=loesung[Zahl]) {                    
document.all.test.outerHTML="Das Ergebnis ist nicht korrekt.";
}
            
document.all.test.outerHTML="Das Ergebnis ist korrekt.";
}

HTML:
<input type="text" name="Eingabe" onfocus='kontrolle()'>

Der Computer kontrolliert scheinbar aber nur einmal. Das heißt, der Besucher gibt das Ergebnis ein. Der erste Buchstabe, das er eingibt ist natürlich falsch. Bis hierhin alles okay. Es steht Das Ergebnis ist nicht korrekt. Aber, wenn man das Wort zu Ende schreibt, steht es immer noch da, dass es falsch ist. Ich glaube es wird nur einmal ausgeführt.

Kann mir jemand helfen? Wie gesagt, ich habe noch nicht so viel Erfahrung.
 
Dein Fehler ist mit onfocus zu arbeiten. onfocus wirkt nur in dem Moment, wenn das Element in den Fokus genommen wird. Was Du suchst ist aber eine Prüfung nach Eingabe der vermeintlichen Lösung. Also solltest Du einen Button einbauen und diesem einen onclick-Eventhandler zuweisen.
 
Bei onkeyup (oder auch onkeypress) würde bei jedem Tastendruck im Feld das JavaScript angestoßen werden. D.h. auch das das Ergebnis ständig aktualisiert wird.
 
Verwende das jQuery-Framework - damit lässt sich das schnell & einfach lösen. Ca. so:


HTML:
<html>
    <head>
         <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $('#myInput').keyup(function() {
                    alert('In das Eingabefeld (#myInput) wurde was eingetippt.');
                });
            });
        </script>
    </head>
    <body>
        <input type="text" name="Eingabe" id="myInput">
    </body>
</html>
 
onkeyup funktioniert auch nicht :(

Scheinbar liegt es an der Funktion. Ich habe es mal mit einem Button realisiert.

HTML:
 function kontrolle() {           
 var texteingabe = document.Form1.Eingabe.value;           
 if (texteingabe==loesung[Zahl]) {                   
 document.all.test.outerHTML="Das Ergebnis ist korrekt.";  }           
 else {            
document.all.test.outerHTML="Das Ergebnis ist nicht korrekt.";            
}        
}

HTML:
<input type="button" value="Fertig!" onclick="kontrolle();">

Wenn ich etwas falsch eingebe, kommt Fall else. Wenn ich es jetzt korrigiere, passiert nichts. Wenn ich sofort etwas richtiges schreibe, kommt Ergebnis korrekt. Das ist mein Problem.

Ich werde mal morgen dieses jquery Skript probieren.
 
Schreib den Text lieber in ein Element mit einer ID und mit innerHTML. Also:

Code:
document.getElementById("elementeID").innerHTML = "Der Text";
 
Zurück
Oben