Получить "изменить" для работы в IE9 - PullRequest
1 голос
/ 12 сентября 2011

Я не могу заставить .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>

Есть идеи?

Ответы [ 4 ]

1 голос
/ 12 сентября 2011

Просто скажите IE, что это текстовое поле, добавив соответствующий атрибут:

<input class="myInput" type="text" />

Редактировать: хотя лучше указывать тип, это не проблема, он отлично работает в IE9 для меня, так как Джон спросил: что вы подразумеваете под "не работает"?

0 голосов
/ 13 сентября 2011

Простите, ребята. Так же, как вы сказали, это работает. Проблема заключалась в том, что у меня также был проверочный скрипт на входе с регулярным выражением, которое не работало в IE9 (но в IE8). Большое спасибо, хотя ...

0 голосов
/ 12 сентября 2011

Это работает, когда я проверяю это: 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:

<form>

<input type="text" class="myInput" />

</form>
0 голосов
/ 12 сентября 2011

Использовать нажатие вместо изменения.

$('.myInput').keypress(function () {
    alert("hi");
});
...