Проверка jQuery, несколько идентификаторов форм для одной и той же функции - PullRequest
1 голос
/ 21 марта 2010

Привет, есть две формы с одинаковыми правилами валидации, но с разными идентификаторами, которые я хотел бы объединить в одну функцию. Как я могу это сделать?

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 ]

3 голосов
/ 21 марта 2010

Если вам не нужна переменная валидатора (которую вы переопределяете, так что, похоже, вам это не нужно), просто используйте множественный селектор:

$("#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 голосов
/ 21 марта 2010

Сделать 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() );
}       
}); 
...