2012-01-02 3 views
0

Я пытаюсь добавить правила класса, но, похоже, не работает правильно.jquery validator - addClassRules

При отправке формы он проверяет только первое текстовое поле во время onblur второго текстового поля, отображаются ошибки.

$.validator.addClassRules({ 
    contactvalues: { 
     minlength: 10 
    }, 
    email: { 
     email: true 
    } 
}); 
$("#extracontacts").validate(); 

где #extracontacts является идентификатором FORM.

это (резюме) HTML-формы:

<form id="extracontacts" action="/toolbox/contact/manage/save" method="post"> 
    <input type="text" id="contacts_value_1" value="[email protected].com" name="contacts_value[]" class="contactvalues email valid"> 
    <input type="text" id="contacts_value_2" value="testing" name="contacts_value[]" class="contactvalues email">   
</form> 

также, если я редактирую классы входов после document.ready(), я должен напомнить $("#extracontacts").validate();?

+0

вы используете PHP или ASP.NET? –

+0

@ AndreaTurri im, используя PHP, не имеет значения? : s – hex4

+0

yes, asp.net визуализировать ID по-разному. мой код показывает, как взять этот идентификатор. Если вы используете php, это не проблема. –

ответ

0

Попробуйте этот путь, вы также должен представить вход в форму (мой представить вход ID будет только «sumbit_form»):

function InitValidations() { 

    function setContactsRules() { 

     $('#contacts_value_1').rules('add', { 
      required: true, 
      email: true, 
      messages: { 
       required: 'please type your email', 
       email: 'please type a valid email' 
      } 
     }); 

     $('#contacts_value_2').rules('add', { 
      required: true, 
      messages: { 
       required: 'please type something' 
      } 
     }); 

    $('#submit_form').click(function (event) { 

     var isValid = $("#extracontacts").validate(); 

     setContactsRules(); 

     if (!isValid) { 
      event.preventDefault(); 
     } 

    }); 

} 

$(document).ready(function() { 

    InitValidations(); 

}); 

Надеется, что это помогает. С уважением.

+0

Ожидается, что ответы на SO будут специфичны для вопроса, а не код другого, который OP должен изменить в соответствии с его потребностями. – Sparky

+0

Это пример. Просто сравните шаги. –

+0

Я не сказал, что это был недопустимый пример. Я сказал, что это не является вопросом ответа на вопрос. Просто переформатируйте его так, чтобы он точно ответил на его вопрос, и никто не должен сравнивать любые шаги. – Sparky

0

Попробуйте сделать вашу проверку как этот

$(function(){ 
$("#extracontacts").validate({ 
rules: { 
    name: { 
    required: true, 
    minlength: 3, 
    maxlength: 50, 
},  


messages: { 
    name: { 
     required: "Your name is Required input", 
     minlength: "The Postman demands at least {3} characters", 
     maxlength: "Please, no more than {50} characters" 
    }, 
}); 
}); 
+0

проблема с использованием имени заключается в том, что имя входов для проверки содержит скобки '[]', которые в вашем случае недействительны, но в любом случае я не могу использовать имена так как я буду удалять/добавлять/изменять входы и их проверку с помощью javascript ... так что лучше использовать классы – hex4

+0

Имена были просто примером, он не был настроен на ваш конкретный текст. Дело в том, чтобы проверить и добавить правила в том же скрипте – Brad