2013-10-06 2 views
18

В настоящее время мне нужно проверить каждую форму, как это:проверка плагина - Автоматические проверки нескольких форм на странице

$(document).ready(function() { 
     $('#admin_settings_general').validate({ 
      rules: { 
       admin_settings_application_title: { 
        required: true 
       } 
      }, 
      highlight: function (element) { 
       $(element).closest('.form-group').addClass('has-error'); 
      }, 
      unhighlight: function (element) { 
       $(element).closest('.form-group').removeClass('has-error'); 
      } 
     }); 
    }); 

Я хочу, чтобы он автоматически проверять формы для каждого элемента с required тегом.

Как я могу это сделать?

+0

_ "Вопросы просящих кода должны продемонстрировать минимальное понимание решаемой задачи ** Включить пытавшихся решения, почему они не работают, и ожидаемые результаты ** См. Также: [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist). "_ – Sparky

+0

Как вы подразумеваете" автоматически "? Плагин Validate уже автоматически проверяет каждый элемент с атрибутом 'required'. И если вы имеете в виду без необходимости называть '.validate()', вы не можете ... это метод _intialization_ для плагина. Как еще это должно знать, какая форма для проверки и какие варианты использовать? – Sparky

+0

Ну, я имею в виду, что мне нужно вызвать '$ ('# admin_settings_general'). Validate()' для каждой из форм в настоящее время. Как я могу назвать это, не ограничивая его одной формой? – Michael

ответ

55

Цитата OP:

«Я хочу, чтобы он автоматически проверять формы для каждого элемента с требуемым тегом.» Цитата

OP комментарий:

«? Я должен назвать $('#admin_settings_general').validate() для каждой из форм в настоящее время Как я могу назвать его, не ограничивая его в одной форме»


Чтобы правильно инициализировать .validate() на все формы на странице, использовать общий селектор, таких, как и сам form тега (или class). Поскольку вы не можете подключить .validate() к любым селектора jQuery, который представляет несколько элементов form, используйте jQuery .each(). Это просто то, как были разработаны эти методы плагинов.

$(document).ready(function() { 

    $('form').each(function() { // attach to all form elements on page 
     $(this).validate({  // initialize plugin on each form 
      // global options for plugin 
     }); 
    }); 

}); 

Работа DEMO:. http://jsfiddle.net/6Fs9y/

+0

@ Майкл, исправлена ​​опечатка и добавлена ​​демонстрация. Пожалуйста. – Sparky

+0

Да, это сработало для меня. Обратите внимание, что вам нужен вызов '' each''. Вызов '' validate() '' на '' $ ("form") '' недостаточно; вам нужно индивидуально называть '' validate() '' для каждого экземпляра '' form''. – user1429980

+1

http://jsfiddle.net/prashantptapase/6Fs9y/86/ почему этот метод работает. Несколько селекторов ........? –

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