jQuery验证,相同功能的多个表单ID
问题描述:
嗨有两种形式完全相同的验证规则,但不同的ID,我想合并成只有一个功能。我怎样才能做到这一点?jQuery验证,相同功能的多个表单ID
var validator = $("#ValidateForm1").validate({
errorPlacement: function(error, element) {
if (element.is(":radio"))
error.appendTo(element.parent().next().next());
else if (element.is(":checkbox"))
error.appendTo (element.next());
else
error.appendTo(element.parent().next());
}
});
var validator = $("#validateForm2").validate({
errorPlacement: function(error, element) {
if (element.is(":radio"))
error.appendTo(element.parent().next().next());
else if (element.is(":checkbox"))
error.appendTo (element.next());
else
error.appendTo(element.parent().next());
}
});
答
如果您不需要验证变量(你正在重新定义,所以会出现你不这样做),只需使用一多重选择:
$("#validateForm1, #validateForm2").validate({
errorPlacement: function(error, element) {
if (element.is(":radio"))
error.appendTo(element.parent().next().next());
else if (element.is(":checkbox"))
error.appendTo (element.next());
else
error.appendTo(element.parent().next());
}
});
或者,如果你有很多像这样的形式,只是给他们一个类,像这样:
<form id="validateForm1" class="myFormClass"></form>
<form id="validateForm2" class="myFormClass"></form>
....
<form id="validateFormX" class="myFormClass"></form>
而这样的选择:
$(".myFormClass").validate({
答
充分利用formId作为变量
var myFormId = "ValidateForm1"; // e.g. get the form id by using javascript
....
var validator = $("#"+ myFormId).validate({
errorPlacement: function(error, element) {
if (element.is(":radio"))
error.appendTo(element.parent().next().next());
else if (element.is(":checkbox"))
error.appendTo (element.next());
else
error.appendTo(element.parent().next());
}
});
第二种解决方案不起作用,因为提交一份表格,就验证所有形式。你可以重写提交并通过表单来验证,就像这里:http://*.com/questions/8757057/jquery-validate-not-working-on-multiple-form – 2013-11-22 20:09:56
刚刚尝试过的第一个解决方案,它不' t工作,验证只需要一个选择器。 – 2013-11-22 20:29:24