2015-05-07 3 views
1

Я использую плагин Jquery Validate вместе с дополнительными методами проверки на стороне клиента моей формы. Пока все отлично работает, у меня просто одна проблема. Когда я использую один из дополнительных методов для его проверки, если это не удается, он не продолжает проверять любые другие поля.Метод проверки правильности Jquery останавливает проверку других полей

Так что в настоящее время я оставляю форму пустой и попадаю в submit. Я вижу список всех ошибок. Но если я ввожу числа в поле имени и нажимаю submit, то я вижу только одну ошибку для ошибочного правила шаблона. Вот мой JQuery:

$j("#wizardForm").validate({ 
    rules: { 
     firstname: { 
      required: true, 
      pattern: /^[a-zA-Z]+([\s]+)?[']?([a-zA-Z]+)?$/ 
     }, 
     lastname: { 
      required: true, 
      pattern: /^[a-zA-Z]+([\s]+)?[']?([a-zA-Z]+)?$/ 
     }, 
     email: { 
      required: true, 
      email: true 
     }, 
     password: "required", 
     PWconfirm: "required", 
     country: "required" 
    }, 
    errorLabelContainer: ".validation-error-msg", 
    wrapper: "li", 
    errorClass: "validation-error", 
    messages: { 
     firstname: { 
      required: "The 'First Name' field cannot be empty.", 
      pattern: "The first name field must only contain letters." 
     }, 
     lastname: { 
      required: "The 'Last Name' field cannot be empty.", 
      pattern: "The 'Last Name' field must only contain letters." 
     }, 
     email: { 
      required: "The 'Email Address' field cannot be empty.", 
      email: "The email address must be in a valid email format." 
     }, 
     password: "The 'Password' field cannot be empty.", 
     PWconfirm: "The 'Retype Password' field cannot be empty.", 
     country: "The 'Country' field needs a valid selection." 
    } 
}); 

Есть ли способ, что я могу позволить ему показать все ошибки, когда правило из дополнительных методов не удается?

+0

Там нет ничего особенного в файле 'дополнительный-methods' или что-нибудь, содержащегося в том, что вызывает проблемы, вы можете описать. Это всего лишь список методов. Пожалуйста, покажите соответствующую разметку HTML, чтобы я мог воспроизвести. Как бы то ни было, код, который вы показали, не показывает того, что вы описываете. Все ошибки остаются: http://jsfiddle.net/07jm89wp/ – Sparky

+0

Хотя вы использовали правило 'pattern' в поле ** last ** name, в то время как вы определили его собственное сообщение на ** вначале ** поле имени, которое обычно не нарушает ничего. – Sparky

+0

@Sparky Я отредактировал код, чтобы включить метод шаблона в поля firstname и lastname. Я взял ваш jsfiddel и вставил код, который у меня был выше, и смог воспроизвести проблему, введя «123» в поле имени или в поле «123» в поле «Фамилия», оставив поле первого имени пустым. Он отображает только одну ошибку вместо списка всех ошибок. http://jsfiddle.net/07jm89wp/1/ – Jmh2013

ответ

0

Ваш wrapper вариант нарушает его. Возможно, потому, что вы пытаетесь создать элементы <li> вне контейнера <ul>. Считывание the docs for wrapper ...

Оберните этикетки с указанным элементом. Полезно в сочетании с errorLabelContainer, чтобы создать список сообщений об ошибках.

Но вы не создаете "список ошибок"; вы создаете сообщения inline, поэтому wrapper и errorLabelContainer бессмысленны в этой демонстрации.

Работая иначе: http://jsfiddle.net/07jm89wp/3/

+0

Я очень ценю вашу помощь. Это работает, если я не создаю список ошибок. Но если я должен был создать список ошибок, поскольку это была моя конечная цель, как только я понял, что это проблемы, как бы я это сделал? При выходе из 'errorLabelContainer' без опции' wrapper' все равно возникает такая же проблема при создании списка. Вот скрипка с добавленным контейнером, поэтому ошибки больше не встроены. http://jsfiddle.net/07jm89wp/4/ – Jmh2013

+0

@ Jmh2013, вы следуете примеру в документах, и он все еще сломан. Я считаю, что вы обнаружили ошибку в плагине и должны сообщить об этом разработчику на своей странице GitHub: https://github.com/jzaefferer/jquery-validation – Sparky

+0

Я отправил вопрос на его страницу GitHub. Однако вы ответили на исходный вопрос. Спасибо! Вот ссылка на сообщение, если вы заинтересованы. https://github.com/jzaefferer/jquery-validation/issues/1480 – Jmh2013

Смежные вопросы