jQuery проверить $ .validator.addClassRules () не поддерживается в IE7?

0

У меня возникли проблемы со следующим сценарием в IE7:

$.validator.addClassRules({
   isemail: {
       email: true
   },
    required: {
        required: true
    }   
});

Это отлично работает в IE8 и других браузерах, однако я получаю следующую ошибку в IE7:

Line: 158
Char: 3
Error: Expected ':'

В моем коде эта строка:

isemail: {

Нет упоминания об отсутствии поддержки этой функции на сайте плагина jQuery validate (http://jqueryvalidation.org/jQuery.validator.addClassRules/), так что я здесь что-то не хватает?

Версия jQuery, которую я использую, - jQuery v1.10.2. Версия проверки jQuery, которую я использую, - 1.11.1.

Любая помощь будет принята с благодарностью.

  • 0
    jQuery Validate 1.11.1 был протестирован только через jQuery 1.9.
  • 0
    Вы тестируете реальную копию IE 7?
Показать ещё 4 комментария
Теги:
jquery-validate
internet-explorer-7

1 ответ

6
Лучший ответ

Ответить OP:

"Любая помощь будет принята с благодарностью".

Ваш код:

$.validator.addClassRules({
    isemail: {
        email: true
    },
    required: {
        required: true
    }   
});

Как вы его написали, вы хотите использовать class="isemail" и class="required" в вашей разметке input элементов.

<input class="isemail" type="text" ...
<input class="required" type="text" ...

ОДНАКО, по умолчанию вы уже можете поместить стандартные правила в атрибут class без .addClassRules().

<input class="email" type="text" ...
<input class="required" type="text" ...
<input class="email required" type="text" ...

Метод .addClassRules() предназначен для создания составных правил из наборов стандартных правил и назначения составного правила для нового имени class.

Из документов:

Описание: Добавить метод составного класса - полезно для реорганизации общих комбинаций правил в один class.

Примеры запасов из документации

Для нескольких имен class:

jQuery.validator.addClassRules({
    myClass: {
        required: true,
        minlength: 2
    },
    myClass2: {
        required: true,
        digits: true,
        minlength: 5,
        maxlength: 5
    }
});

или для одного имени class:

jQuery.validator.addClassRules('myClass', {
        required: true,
        minlength: 2
    }
});

Поскольку вы не показали нам никаких сложных правил, вам не нужен этот метод вообще. По умолчанию имя правила будет работать как имя class. (есть исключения: только правила, которые могут быть объявлены с помощью логического значения, могут быть объявлены через class.)

<input class="required" type="text" ...
<input class="email" type="text" ...

Вы могли бы даже имитировать составное правило (опять же, это без .addClassMethod()).

<input class="required email" type="text" ...

Ответить OP:

"... [is] .addClassRules() не поддерживается в IE7?.... Нет упоминания об отсутствии поддержки этой функции на сайте плагина jquery validate, так что я здесь что-то не вижу?"

Возможно, вы обнаружили ошибку, определенную для IE7, однако, поскольку использование IE7 практически нулевое, я не думаю, что ожидаю исправить или даже беспокоиться об этом слишком много.

Однако, принимая мои простые предложения выше, вы отрицаете необходимость метода .addClassRules() и будете продолжать поддерживать IE7.


EDIT:

Если вы не можете изменить разметку HTML, вы можете добавить в class с помощью jQuery. Это назначит .email для каждого элемента, который уже содержит .isemail.

$(document).ready(function() {

    $('.isemail').addClass('email');  // put this at the top

});
  • 0
    Это требуется в этом случае, хотя, поскольку я не могу изменить базовый HTML. Обычно мы используем ExtJS для проверки, а класс, который мы используем для электронной почты - isemail. Многие государственные органы и департаменты по-прежнему поддерживают IE7, поэтому мы должны обеспечить поддержку этого браузера. В конечном счете, простым решением этого является использование метода jQuery .addClass для присвоения класса электронной почты любому объекту класса ieemail.
  • 0
    @jezzpin, используя jQuery, вы можете назначить класс email каждому элементу класса isemail .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню