2013-10-03 33 views
7

Mam ten problem specyficzny dla IE8. To zdarzenie nie jest uruchamiane tylko w IE8, ale działa dobrze w IE9 i innych przeglądarkach, takich jak Firefox i Chrome.jquery .on ("input") nie zostaje uruchomiony tylko w ie8.

$('#myId').on('input', function() { 
    //do something. 
} 

Proszę dać mi znać, jeśli istnieje jakieś pracy dla tego samego w IE8.

Dzięki!

+4

Nie rozpoznaję "input" jako wyzwalacza zdarzeń, może jeszcze nigdy tego nie widziałem? – VoidKing

+1

Spróbuj użyć 'change' lub' keyup' zamiast tego 'input' nie jest obsługiwany w starszych przeglądarkach – Joe

+0

@VoidKing i wszyscy, którzy wznowili twój komentarz: Dowiedz się więcej: [MDN oninput] (https://developer.mozilla.org/en-US/docs/Web/ API/GlobalEv entHandlers.oninput) – epascarello

Odpowiedz

8

oninput jest IE9 +, czyli dlaczego to nie działa w IE8

MDN oninput

Feature   Chrome Firefox Internet Explorer Opera Safari 
Basic support (Yes)  2   9     10  (Yes) 
1

Wygląda przypadku input jest częścią specyfikacji HTML5, coś nie będę oczekiwać, że IE8 będzie obsługiwać. Może być konieczne użycie zdarzenia change.

26

Starsze wersje IE mają wydarzenie o nazwie propertychange, z którego można korzystać. Można sprawdzić na razie propertychange a wydarzeniem input w tym samym czasie:

$('#myId').on("propertychange input",function(ev){ 
    doAwesomeThing(); 
}); 
+0

Ta odpowiedź powinna być wyższa. Dzięki za dobre rozwiązanie – Will

+0

Działa dla mnie. Wielkie dzięki. –

+2

Działa, ale dwa razy wywołuje zdarzenie zmiany właściwości w IE8 ... zamiast tego użył '' wejścia klawiatury 'i zadziałało! – Justin

4

odpowiedź AaronBaker za: Działa zarówno dla IE8 i IE10 (HTML5), jak również nowoczesnych przeglądarkach ... bez podwójnego stanowiska imprezy

Użyłbym komentarza lub upwote, ale rep zbyt niski.

$('#myId').on("propertychange input",function(ev){ 
    doAwesomeThing(); 
}); 
1

Ten niewielki optymalizacja uniemożliwi słuchacza od strzelania dwukrotnie w nowoczesnych przeglądarek (rodzaj hack, ale prob najlepsze rozwiązanie)

$ ('selektor'). Na (! Window.eventListener? 'keyup': 'input', function() {}