Я не могу понять, почему form2 не выполняет проверку, но form1 проходит проверку (используя плагин проверки jQuery). Как я могу сделать make1 с ошибкой, используя код ниже?
HTML
<form id="form1" method="get" action="">
<input type="text" id="viewName1">
<h3></h3>
</form>
<form id="form2" method="get" action="">
<input type="text" id="viewName2" required>
<h3></h3>
</form>
JAVASCRIPT
$('#form1').validate({
rules: {
viewName: 'required'
},
messages: {
viewName: '* view name is required'
},
submitHandler: function () {
$('#form1 h3').text('Form1 valid');
},
invalidHandler: function (event, validator) {
$('#form1 h3').text('Form1 invalid');
}
});
$('#form1').submit();
$('#form2').validate({
submitHandler: function () {
$('#form1 h3').text('Form1 valid');
},
invalidHandler: function (event, validator) {
$('#form1 h3').text('Form1 invalid');
}
});
$('#form2').submit();
Он не работает, потому что ваши элементы ввода не имеют атрибута name
. Это требование плагина.
См. Раздел "Рекомендации по разметке" в документах:
"Атрибут
name
" требуется "для входных элементов, плагин проверки не работает без него".
$('#form1').validate({
rules: {
viewName: 'required' // <-- "viewName" is the 'name' attribute, not id
},
messages: {
viewName: '* view name is required' // <-- "viewName" is the 'name' attribute, not id
},
submitHandler: function () {
$('#form1 h3').text('Form1 valid');
},
invalidHandler: function (event, validator) {
$('#form1 h3').text('Form1 invalid');
}
});