Ich habe eine Eingabe mit einem Keydown Event Listener. Ich bin neu bei Javascript/html, also vielleicht ist es offensichtlich, aber wenn ich es im Browser ausprobiere funktioniert alles. Ich tippe einen Charakter und ich kann sehen, dass mein Javascript lief und dann tippe ich ein anderes Zeichen und es funktioniert. Aber wenn ich die chrome-Entwicklerwerkzeuge öffne und einen Unterbrechungspunkt in die Ereignis-Listener-Funktion setze, dann erscheint, wenn ich etwas eintippe, es nicht im Eingabeelement, nachdem der Ereignis-Listener fertig ist. Was ist der Grund dafür?Zeichen wird nicht eingegeben, wenn die Eingabe hat Keydown Event Listener und im Debug-Modus
Hier ist mein javascript:
$("#author").keydown(function(event) {
});
und hier ist das HTML-Element:
<input class="form-control" name="author" type="text" id="author">
So ist es noch einmal zu versuchen und zu erklären: wenn ich ein Zeichen eingeben (zB "m") Im Eingabeelement erscheint dann der Buchstabe "m" im Eingabeelement. Wenn ich ein anderes Zeichen tippe, erscheint auch dieses. Dann aktualisiere ich die Seite. Ich öffne die Chrome-Entwickler-Tools und lege einen Unterbrechungspunkt auf den Event-Listener. Ich gebe meine Tastatur "m" ein, und der leere Ereignis-Listener läuft und es gibt keine Anzeige auf der Seite, die ich "m" eingegeben habe. Es wird nicht im Eingabeelement angezeigt. Wenn ich den Debug-Punkt entferne, funktioniert es. Ich tippe ein Zeichen und es erscheint im Eingabeelement.
Here ist ein Kinderspiel-Beispiel. Wenn Sie in das Eingabefeld eingeben, funktioniert es. Wenn Sie die Dev-Tools (zumindest in Chrome) öffnen und den js-Interpreter eingeben, wird nichts eingegeben.
Ich denke, Sie haben das Szenario getroffen, wo die Taste gedrückt wurde, können Sie sehen, was der Schlüssel ist, aber der 'Wert' des Eingabefeldes wurde nicht aktualisiert, um es noch aufzunehmen, also wenn Sie die 'Länge', du erhältst die vorherige Länge ... und den Wert. Wenn Sie das 'keypress' -Ereignis erfassen, wird es abhängig von Ihren Bedürfnissen sein, nachdem der Schlüssel hinzugefügt wurde. – scunliffe
ja, es ist wahr. Aber warum wird der Buchstabe, der eingegeben wurde, auf der Seite angezeigt, wenn der Code ausgeführt wird? – user3494047
müssen Sie den Tastendruck verwenden, um die Länge des Eingabefeldes zu erhalten. –