У меня есть несколько форм на другой странице, есть ли способ написать single function
которая будет заниматься validation
или я буду писать код для каждой формы separately
.
$(document).ready(function () {
$('#fvujq-form1').validate();
$('#fvujq-form2').validate();
});
Примечание. Каждая форма имеет свои собственные правила.
Обновить:
$("form").each(function () {
$(this).validate({
rules: {
username: {
required: true
},
password: {
required: true
},
name: {
required: true,
},
cperson: {
required: true,
}
},
submitHandler: function (form) {
return false; //temporarily prevent full submit
}
});
});
Теперь username
и password
различной формы и name
и person
имеют разную форму на разных страницах. Имеет ли право действовать таким образом, чтобы иметь общую форму представления.
Вы должны проверить, используя $('form').validate();
, если это не работает, используйте:
$('form').each(function(){
$(this).validate();
});
Вы можете использовать селектор $ ("form") для проверки всех элементов формы типа, если это то, о чем вы просите. Я бы не рекомендовал это специально для страницы с несколькими формами.
Если вы можете указать каждому элементу ввода в своей форме собственный атрибут xx-field-type
например:
<input type='text' xx-field-type='email'/>
Вы можете использовать:
jQuery.fn.extend({
validate: function() {
var input_list = this.find("input");
for (var i = 0; i < input_list.length; i++) {
switch(input_list[i].attr("xx-field-type")) {
case 'username':
var value = input_list[i].val();
if (value.match(/^[a-z0-9]+$/) != true) {
return false;
}
break;
case 'password':
var value = input_list[i].val();
if (value.match(/[a-z]+/) != true
|| value.match(/[A-Z]+/) != true
|| value.match(/[0-9]+/) != true) {
return false;
}
break;
case 'email':
var value = input_list[i].val();
if (value.match(/^[a-z0-9]+@[a-z0-9]$/) != true) {
return false;
}
break;
default:
continue;
}
}
return true;
}
});
Это будет проходить через каждое поле ввода формы, проверьте значение атрибута xx-field-type
и используйте это, чтобы выбрать правила, которые должно соответствовать значение. Возвращает false, если какой-либо отказ в противном случае возвращает true.
Если вы не можете добавить пользовательские атрибуты, вы можете использовать классы, но это означает, что hacky обозначает тип формы, используя атрибут, предназначенный для установки связанных с дисплеем материалов.
Непроверенные
типы полей, которые я использовал, и регулярные выражения предназначены только для демонстрации.