Я не могу заставить .change () работать со входом в Internet Explorer 9. Он работает во всех других браузерах (которые я пробовал), но не в IE 9.
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script> </head> <body> <script type="text/javascript"> $(document).ready(function() { $('.myInput').change(function () { alert("hi"); }); }); </script> <input class="myInput" /> </body> </html>
Есть идеи?
Просто скажите IE, что это текстовое поле, добавив соответствующий атрибут:
<input class="myInput" type="text" />
Редактировать: хотя лучше указывать тип, это не проблема, он отлично работает в IE9 для меня, так как Джон спросил: что вы подразумеваете под "не работает"?
Простите, ребята. Так же, как вы сказали, это работает. Проблема заключалась в том, что у меня также был проверочный скрипт на входе с регулярным выражением, которое не работало в IE9 (но в IE8). Большое спасибо, хотя ...
Это работает, когда я проверяю это: http://jsfiddle.net/Guffa/WUEXD/
Я бы порекомендовал вам иметь на странице тип документа, который будет типом документа XHTML, так как вы используете XHTML в своем коде:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Чтобы избежать проблем с требовательными браузерами, поместите ввод в форму и установите атрибут type:
type
<form> <input type="text" class="myInput" /> </form>
Использовать нажатие вместо изменения.
$('.myInput').keypress(function () { alert("hi"); });