Проверка jQuery не работает в IE7 + IE8 - PullRequest
37 голосов
/ 10 мая 2011

Я пытаюсь использовать плагин 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 я использовал jQuery v1.6. Я вернулся на v1.5.2 и изменил

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

до:

$("form").validate ({

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

Ответы [ 6 ]

43 голосов
/ 10 мая 2011

Я думаю, что вам нужно либо вернуться к более ранней версии jquery (1.5.2), либо использовать более новую версию валидационного плагина 1.8.0.1.

16 голосов
/ 16 января 2012

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

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 * 1009.*.

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

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

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

GitHub Jquery Validation: https://github.com/jzaefferer/jquery-validation/downloads

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

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

5 голосов
/ 03 октября 2012

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

4 голосов
/ 21 января 2012

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

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

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

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

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

1 голос
/ 07 июня 2014

У меня была такая же проблема в Sage CRM с использованием ошибки получения автозаполнения jqueryui "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">
1 голос
/ 21 мая 2013

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

...