Ich möchte eine Funktion bei jeder Änderung eines Textfeldsteuerelements ausführen, sobald der Benutzer tippt. Das Ereignis .keyup()
ist für die meisten Fälle in Ordnung.jQuery-Ereignis nach Auswahl eines vorgeschlagenen Elements in einem Textfeld?
Browser (wie Chrome oder Firefox) können jedoch Autovervollständigungseinträge für Textfeldsteuerelemente vorschlagen (wahrscheinlich, weil der @ Name oder die @id des Eingabesteuerelements bekannt ist).
Leider kann ich keine der folgenden Ereignisse ausgelöst haben, wenn ich auf einen vorgeschlagenen Eintrag klicke. (.keyup() ausgelöst wird, wenn mit der Tastatur ausgewählt)
$('input#email')
.click(function() { console.log('click'); })
.keyup(function() { console.log('keyup'); })
.keydown(function() { console.log('keydown'); })
.change(function() { console.log('change'); })
.focus(function() { console.log('focus'); })
.blur(function() { console.log('blur'); });
So viel wie möglich, würde ich mit einer setInterval()
periodischen Überprüfung vermeiden möge.
Gibt es eine Möglichkeit, dieses Ereignis "einen Vorschlag auswählen" zu erkennen?
Großartig! Danke dafür (auch wenn ich jetzt ein bisschen weit von diesem Projekt entfernt bin). Ich stelle fest, dass es ausgelöst wird, wenn auf einen vorgeschlagenen Eintrag (wie gewünscht) geklickt wird, aber nicht, wenn es per Tastatur ausgewählt wird. Es kann nützlich sein, den Event-Handler auch mit _keyup_ zu registrieren, um diese Lücke zu füllen. – Myobis