Bei Chrome wird das Suchereignis bei Sucheingaben ausgelöst, wenn der Benutzer auf die Schaltfläche zum Löschen klickt.
Gibt es eine Möglichkeit, dasselbe Ereignis in Javascript in Internet Explorer 10 zu erfassen?
Bei Chrome wird das Suchereignis bei Sucheingaben ausgelöst, wenn der Benutzer auf die Schaltfläche zum Löschen klickt.
Gibt es eine Möglichkeit, dasselbe Ereignis in Javascript in Internet Explorer 10 zu erfassen?
Antworten:
Die einzige Lösung, die ich endlich gefunden habe:
quelle
oninput
stattdessen das Ereignis zu verwenden. Wenn Sie das X-Symbol drücken, wird dasinput
Ereignis ausgelöst.if (oldValue === "")
?input
Ereignis -event funktioniert, ist diese Lösung insofern überlegen, als sie nur ausgelöst wird, wenn das Element gelöscht wurde, während Lucent auch ausgelöst wird, wenn der Cursor in das Element eintritt, das Element verlässt und auch wenn Daten eingegeben wurden.Das
oninput
Ereignis wird ausgelöst, wennthis.value
eine leere Zeichenfolge festgelegt ist. Dies löste das Problem für mich, da ich die gleiche Aktion ausführen möchte, unabhängig davon, ob das Suchfeld mit dem X oder durch Rückraum gelöscht wird. Dies funktioniert nur in IE 10.quelle
inputEl.addEventListener('input', function(){ /* DoSomething */ })
.Verwenden Sie
input
stattdessen. Es funktioniert mit dem gleichen Verhalten unter allen Browsern.quelle
Warum nicht
quelle
Mir ist klar, dass diese Frage beantwortet wurde, aber die akzeptierte Antwort hat in unserer Situation nicht funktioniert. IE10 hat die
$input.trigger("cleared");
Anweisung nicht erkannt / ausgelöst .Unsere endgültige Lösung ersetzte diese Anweisung durch ein Keydown-Ereignis auf der ENTER-Taste (Code 13). Für die Nachwelt hat dies in unserem Fall funktioniert:
Außerdem wollten wir diese Bindung nur auf die "Suche" -Eingaben anwenden, nicht auf alle Eingaben auf der Seite. Natürlich hat IE dies auch schwierig gemacht ... obwohl wir codiert hatten
<input type="search"...>
, hat IE sie als gerenderttype="text"
. Aus diesem Grund verweist der jQuery-Selektor auf dentype="text"
.Prost!
quelle
Wir können uns das
input
Ereignis einfach anhören . Einzelheiten entnehmen Sie bitte der Referenz . So habe ich ein Problem mit der Schaltfläche "Löschen" in Sencha ExtJS im IE behoben:quelle
Eine sofort einsatzbereite Lösung besteht darin, das X mit CSS vollständig zu entfernen:
Dies hat folgende Vorteile:
quelle
für meine asp.net Serversteuerung
js
ref
MSDN onchange-Ereignis - in IE10 getestet.
... oder mit CSS verstecken:
quelle
Der obige Code funktionierte in meinem Fall nicht und ich habe eine Zeile geändert und eingeführt,
$input.typeahead('val', '');
welche in meinem Fall funktioniert.quelle