<select>
hat diese API. Was ist mit <input>
?
174
Sie können verwenden .change()
$('input[name=myInput]').change(function() { ... });
Dieses Ereignis wird jedoch nur ausgelöst, wenn der Selektor den Fokus verloren hat. Sie müssen daher auf eine andere Stelle klicken, damit dies funktioniert.
Wenn dies für Sie nicht ganz richtig ist, können Sie einige der anderen jQuery-Ereignisse wie Keyup , Keydown oder Tastendruck verwenden - je nach dem gewünschten Effekt.
change
nur ausgelöst wird, wenn das Eingabeelement den Fokus verloren hat. Es gibt auch dasinput
Ereignis, das ausgelöst wird, wenn das Textfeld aktualisiert wird, ohne dass der Fokus verloren gehen muss. Im Gegensatz zu Schlüsselereignissen funktioniert es auch zum Einfügen / Ziehen von Text.change
dies von IE9 nicht unterstützt wird, können Siefocusout
dasselbe Verhalten verwendenWie @pimvdb in seinem Kommentar sagte,
(Siehe Dokumentation .)
Dies ist so nützlich, dass es sich lohnt, eine Antwort darauf zu geben. Derzeit (v1.8 *?) Gibt es in .ququery keine .input () - Convenience-Fn
quelle
$('form').on('change input', function);
hat der Trick für mich getan. Vielen Dank.Ich würde vorschlagen, das Keyup-Ereignis wie folgt zu verwenden:
Es gibt einige Möglichkeiten, um das gleiche Ergebnis zu erzielen. Ich denke, es hängt von den Vorlieben ab und hängt davon ab, wie es genau funktionieren soll.
Update: Dies funktioniert nur bei manueller Eingabe, nicht beim Kopieren und Einfügen.
Zum Kopieren und Einfügen würde ich Folgendes empfehlen:
quelle
Hier ist der Code, den ich benutze:
Dies funktioniert sehr gut, insbesondere wenn es mit einem
jqGrid
Steuerelement gekoppelt ist . Sie können einfach in ein Textfeld eingeben und die Ergebnisse sofort in Ihrem anzeigenjqGrid
.quelle
Es gibt nur einen zuverlässigen Weg, dies zu tun , indem der Wert in einem Intervall abgerufen und mit einem zwischengespeicherten Wert verglichen wird.
Der Grund, warum dies der einzige Weg ist, besteht darin, dass es mehrere Möglichkeiten gibt, ein Eingabefeld mithilfe verschiedener Eingaben (Tastatur, Maus, Einfügen, Browserverlauf, Voiceinput usw.) zu ändern, und dass Sie niemals alle mithilfe von Standardereignissen in einem Kreuz erkennen können -Browser-Umgebung.
Glücklicherweise ist es dank der Ereignisinfrastruktur in jQuery ganz einfach, ein eigenes Inputchange-Ereignis hinzuzufügen. Ich habe es hier getan:
Verwenden Sie es wie:
$('input').on('inputchange', function() { console.log(this.value) });
Hier gibt es eine Demo: http://jsfiddle.net/LGAWY/
Wenn Sie Angst vor mehreren Intervallen haben, können Sie dieses Ereignis auf
focus
/ binden / aufhebenblur
.quelle
$('body').on('inputchange', 'input', function() { console.log(this.value) });
? Oder nicht, wie hier erwähnt: github.com/EightMedia/hammer.js/pull/98 ?Ich empfehle, das
this
Schlüsselwort zu verwenden, um Zugriff auf das gesamte Element zu erhalten, damit Sie mit diesem Element alles tun können, was Sie benötigen.quelle
Das Folgende funktioniert auch, wenn es sich um dynamische / Ajax-Aufrufe handelt.
Skript:
Html,
Ich hoffe, dieser Arbeitscode hilft jemandem, der versucht, dynamisch auf Ajax-Anrufe zuzugreifen ...
quelle
quelle
Sie könnten einfach mit der ID arbeiten
quelle
Sie können dies auf verschiedene Arten tun, Keyup ist eine davon. Aber ich gebe unten ein Beispiel mit auf Änderung.
NB: Eingabe [name = "vat_id"] durch Ihre Eingabe- ID oder Ihren Namen ersetzen .
quelle
Wenn Sie das Ereignis während der Eingabe auslösen möchten , verwenden Sie Folgendes:
Wenn Sie das Ereignis beim Verlassen des Eingabefelds auslösen möchten , verwenden Sie Folgendes:
quelle
$(document).on('change', 'input[name=myInput]', function() { ... });
quelle
Das hat bei mir funktioniert. Wenn auf ein Feld mit dem Namen Feld A geklickt oder ein Schlüssel eingegeben wird, wird das Feld mit der ID Feld B aktualisiert .
quelle
Du könntest benutzen
.keypress()
.Betrachten Sie beispielsweise den HTML-Code:
Der Ereignishandler kann an das Eingabefeld gebunden werden:
Ich stimme Andy voll und ganz zu. Alles hängt davon ab, wie es funktionieren soll.
quelle