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

Объявление jQuery Проверка правил плагина - атрибут против класса и кода

В примерах для плагина jQuery Validate я вижу три разных подхода к объявлению правил проверки:

  • Классы CSS - например. <input type="text" name="whatever" class="required" />
  • Атрибуты - например. <input type="text" name="whatever" required />
  • Код JS - например. $("#myForm").validate({ rules: { whatever: "required", ... } });

Но я не вижу нигде в документах, которые объясняют, почему вы используете один над другим. Я также не вижу объяснения того, как использовать методы проверки с каждым подходом (например, как бы вы использовали метод max (value)" с атрибутом тега или класс css?).

Каковы компромиссы между этими тремя подходами? И как именно вы объявляете все различные методы проверки с помощью каждого подхода?

4b9b3361

Ответ 1

Вы можете применять правила через атрибуты правила данных. Это самый простой способ и, возможно, лучший способ сохранить чистый код...

Пример:

<form id="myform">
    <input type="text" name="email" data-rule-required="true" data-rule-email="true">    
    <input type="text" name="password" id="password" data-rule-required="true" data-rule-minlength="6">
    <input type="text" name="password-confirm" data-rule-required="true" data-rule-minlength="6" data-rule-equalto="#password">
</form>

Вы даже можете отправлять сообщения через атрибуты данных:

<input id="cemail" name="email" data-rule-required="true" data-rule-email="true" data-msg-email="Please enter a valid email address" />

В JavaScript просто вызывается:

$('#myform').validate();

Ответ 2

Из документации http://jqueryvalidation.org/rules:

Существует несколько способов указания правил проверки.

  • Методы проверки без параметров могут быть указаны как классы в элементе (рекомендуется)
  • Методы проверки с параметрами могут быть указаны как атрибуты (рекомендуется)
  • Оба могут быть указаны как метаданные с использованием плагина метаданных [[[обратите внимание, что это устарело, поэтому документы выглядят устаревшими)]]
  • Оба могут быть указаны с помощью параметра-правила метода validate() -

fooobar.com/questions/226629/... содержит дополнительную полезную информацию.

Я предпочитаю использовать атрибут 'required' над классом. Я не считаю, что этот родной атрибут поддерживает его напрямую, ссылаясь на документацию, но так как показалось, что экранные считыватели считают его более полезным, чем class= "требуется". Я иду с этим в этом случае.

В стороне, мне бы хотелось увидеть, какие другие родные атрибуты соблюдают плагин. И информация о том, какая из них выбрана ADT.

Ответ 3

В ответ на ваши конкретные вопросы:

"Как бы вы использовали метод max (value)" с атрибутом тега "

<input id="mytext" name="mytext" max="2"/>

"Как бы вы использовали метод" max (value) "с... CSS-классом"

Вы не можете этого сделать, используйте один из других способов настройки правила.

Ответ 4

вы можете использовать атрибут, требуемый для данных, пожалуйста, не используйте jquery.metadata.js, у меня есть тест в плагине проверки jQuery 1.11.1