Ваш код:
<input type="email" name="email" id="email" value="" />
Он работает в настольном браузере: http://jsfiddle.net/WhH8a/. «Работая», я вижу, что все сообщения, включая сообщение «Формат электронной почты», должным образом поступают из плагина Validation.
Плагин jQuery Validate динамически вставляет novalidate="novalidate"
в элемент <form>
, который должен отключить проверку формы HTML 5. Однако, возможно, есть причина, почему это не работает в вашем браузере для мобильных устройств.
Поскольку плагин Validate отключает проверку HTML 5, и вы хотите использовать плагин в пользу проверки HTML 5, вы можете также удалить его из разметки ...
... type="email"
изменить к type="text"
,
Если вы хотите использовать правило email
, сделайте это следующим образом.
HTML:
<input type="text" name="email" id="email" value="" />
JQuery:
$(document).ready(function() {
$('#myform').validate({ // initialize the plugin
// other options,
rules: {
email: {
required: true,
email: true
},
// other rules
}
});
});
Рабочая Демо: http://jsfiddle.net/TxN48/
Кроме того, эти два правила могут быть определены инлайн в class
атрибута:
HTML:
<input type="text" name="email" id="email" class="required email" value="" />
JQuery:
$(document).ready(function() {
$('#myform').validate({ // initialize the plugin
// other rules & options
});
});
Рабочая Демо: http://jsfiddle.net/TxN48/1/
JQuery Validate плагин уже делает это динамически по умолчанию. Осмотрите DOM на этом jsFiddle, и вы увидите 'novalidate =" novalidate "' внутри тега '
Это довольно круто. Но означает ли это, что вы должны пометить свои поля электронной почты как type = "text", чтобы заставить плагин validate работать? – gpr
Нет ... [по крайней мере, не в моем браузере; и похоже, что плагин все еще знает, как взять на себя] (http://jsfiddle.net/WhH8a/). Возможно, что-то работает при использовании jQuery Mobile. – Sparky