jQuery Validation, multiple form ids for same function
Hi have two forms with the exact same validation rules, but different ids that I'd like to combine into just one function. How can I do that?
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() );
}
});
If you don't need the validator variable (which you're re-defining, so it appears you don't), just use a multiple selector:
$("#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() );
}
});
Or, if you have a lot of forms like this, just give them a class and like this:
<form id="validateForm1" class="myFormClass"></form>
<form id="validateForm2" class="myFormClass"></form>
....
<form id="validateFormX" class="myFormClass"></form>
And a selector like this:
$(".myFormClass").validate({
Make the formId as a variable
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() );
}
});
精彩评论