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({ 
+0

第二种解决方案不起作用,因为提交一份表格,就验证所有形式。你可以重写提交并通过表单来验证,就像这里:http://*.com/questions/8757057/jquery-validate-not-working-on-multiple-form – 2013-11-22 20:09:56

+0

刚刚尝试过的第一个解决方案,它不' t工作,验证只需要一个选择器。 – 2013-11-22 20:29:24

充分利用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()); 
}  
});