Wie kann ich überprüfen den neuen Wert ein text-Feld auf Tastendruck?

Ich habe ein einzelnes Formular Feld und ich muss in der Lage sein zu erkennen, wenn sich das Feld ändert und führen Sie einige zusätzliche code mit dem neue Wert des Feldes. Ich will nur, um den code auszuführen, wenn die Taste gedrückt tatsächlich ändert sich der Wert der text box. Hier ist die Lösung, die ich kam mit.

function onkeypress(e) {
  var value = this.value;
  //do something with 
}

function onkeyup(e) {
  if ( e.which == 8 || e.keyCode == 46 ) { //delete or backspace keys
    this.onkeypress(e);
  }
}

Gibt es nur ein problem obwohl. onkeypress ausgelöst wird, bevor Sie das Feld ist-Wert aktualisiert wird, wenn also schnappe ich mir das Wert, ich bin immer der Vorherige Wert. Ich würde keyup verwenden ausschließlich, wenn ich wusste, dass ein Weg, um zu testen, ob die Taste verändert sich der Wert oder nicht, aber einige Zeichen (z.B. die Pfeiltasten) haben keine Auswirkung auf das Feld Wert.

Irgendwelche Ideen?

InformationsquelleAutor spudly | 2010-01-19

Schreibe einen Kommentar