2 Stimmen

javascript/jQuery rufen eine Funktion auf, nachdem das Ereignis abgeschlossen und zurückgegeben wurde

Ich muss eine Funktion aufrufen, um den Wert eines Formular-Eingabefeldes zu überprüfen nach das keyDown-Ereignis und alle zugehörigen Callback-Handler abgeschlossen und zurückgekehrt sind. Ich weiß, ich brauche dies, weil, wenn ich einen Timer in der Callback-Handler, die den Wert des Eingabefeldes nach 200 ms oder so der Wert überprüft ist wie erwartet, aber wenn ich den Wert am Ende der Callback-Handler selbst überprüfen, seine leer.

// case 1
$('textbox').keyDown(function(){
  ...
  console.log($(this).val());   // empty, not as expected
});

// case 2
$('textbox').keyDown(function(){
  ...
  var $textbox = $(this);
  var timer = setTimeout(function(){
    console.log($textbox.val());    // works as expected
    clearTimeout(timer);
  }, 200);
});

Also, gibt es eine saubere Art und Weise in javascript/jQuery, um eine Funktion aufrufen nach ein Ereignis vollständig abgeschlossen ist?

(Und ja, ich bin mir des onChange-Ereignisses bewusst, aber ich habe es ausprobiert und es funktioniert nicht für dieses Szenario. Ich versuche, benutzerdefinierte Tastenkombinationen zu erkennen und dies ist ein Eckfall. Und in diesem Eckfall, die keyPress und keyUp Ereignisse nicht feuern entweder, nur keyDown).

3voto

cheeken Punkte 32687

Utilisez keyUp stattdessen. keyDown wird vor der Eingabe ausgelöst; keyUp abgefeuert wird.

0voto

AmGates Punkte 2069

Hallo Freund Versuchen Sie dies, Sie werden es bekommen

$('textbox').keyDown(function(e){
  ...
  console.log(String.fromCharCode(e.which));   
});

Hier wird die Taste angezeigt, die Sie gedrückt haben.

Ich hoffe, damit ist Ihr Problem gelöst

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X