jQuery验证,同一功能的多个表单ID

时间:2010-03-21 03:50:16

标签: jquery jquery-plugins jquery-validate

您有两种形式具有完全相同的验证规则,但我想将其组合成一个函数的不同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() );
}       
}); 

2 个答案:

答案 0 :(得分:3)

如果你不需要验证器变量(你重新定义它,所以看起来你没有),只需使用一个多选择器:

$("#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({

答案 1 :(得分:0)

将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() );
}       
});