Подтвердить что ты не робот

Проверка jQuery не работает в IE7 + IE8

Я пытаюсь использовать плагин jQuery Validation в форме на моем веб-сайте. Форма работает в FF, Chrome, Opera и Safari. Он еще не работал в IE7 или IE8.

Ниже приведена упрощенная версия моего кода, который, кажется, работает в каждом браузере, но IE.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">

<title>Form</title>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.js"></script>

<script type="text/javascript">
    $(document).ready(function(){
       var validator = $("form").validate ({
       rules: {
                first_name: "required"
              },
       messages: {
                first_name: "Enter your firstname"
                 }
       });
    });
</script>

</head>

<body>

<form method="post">
    <label for="first_name" class="hide">First Name</label> 
    <input type="text" name="first_name" value="" id="first_name" class="required" />
    <button type="submit" id="submit" name="submit">Submit</button>
</form>

</body>

</html>

Изменить: Теперь мы знаем, что использование jquery last, я использовал jQuery v1.6, было проблемой. Я вернулся к версии 1.5.2 и изменил

var validator = $("form").validate ({

в

$("form").validate ({

Теперь все работает в IE. Спасибо.

4b9b3361

Ответ 1

Мне кажется, вам нужно либо вернуться к более ранней версии jquery (1.5.2), либо использовать более новую версию validation plugin 1.8.0.1.

Ответ 2

Когда вы создаете новый проект ASP.NET MVC 3 в Visual Studio, ваша папка script будет по умолчанию содержать среди других:

jquery-1.5.1.min.js 
jquery.validate.min.js (which is version 1.8.0)

Одной из первых вещей, которые вы, возможно, захотите сделать, является обновление версии jquery до последней версии, которая сегодня является версией 1.7.1

После этого проверка на стороне клиента перестанет работать в Internet Explorer 7 и Internet Explorer 8.

Это связано с тем, что версия jquery.validate несовместима с версиями jquery > 1.6. Решения просты, вам также нужно обновить версию jquery.validate.

Вы можете найти текущую версию 1.9 из Microsoft CDN или последнюю версию GitHub здесь:

Microsoft Ajax CDN: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js

Проверка GitHub Jquery: https://github.com/jzaefferer/jquery-validation/downloads

Помните, что вы всегда можете найти последнюю библиотеку javascript в Microsoft CDN, см. полный список доступных библиотек: http://www.asp.net/ajaxlibrary/cdn.ashx

Эта информация из моего сообщения в блоге об этой проблеме

Ответ 3

Для чего я должен был обновиться до последнего JQuery (1.8.2 в это время) и Validate (1.10), чтобы обойти эту проблему.

Ответ 4

У меня были проблемы с jquery.validate.js в IE7/IE8. После отладки я заметил, что следующая строка вызывала проблему (ln 436 в версии 1.7):

return $([]).add(this.currentForm.elements)
            .filter(":input")

Замените эти две строки чем-то вроде:

return $(':input', this.currentForm)

Это помогло мне.

Ответ 5

У меня просто была эта проблема, но проблема не в том, что мне нужна последняя версия jquery - это была последняя версия jquery, которая вызвала эту проблему. Jquery 2.x не поддерживает IE в это время, поэтому убедитесь, что вы используете 1,8+, но меньше 2.0.

Ответ 6

У меня была та же проблема с Sage CRM с использованием ошибки jqueryui autocomplete "error3". script3: член не найден. jquery-1.8.2.min.js, строка 2 символ 32075 "только в IE (версия 10). Эта ошибка была привязана в режиме страницы: IE заставлял сайт работать в стандартном режиме IE 7.

Это неприятный хак, но он работает хорошо. Поместите это в начало страницы. Потратьте меня на час, чтобы пообщаться с этим, надеюсь, это поможет кому-то другому.

<!DOCTYPE HTML>
<meta http-equiv="x-ua-compatible" content="IE=Edge">