Объявление 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?).
Каковы компромиссы между этими тремя подходами? И как именно вы объявляете все различные методы проверки с помощью каждого подхода?
Ответы
Ответ 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