it-roy-ru.com

jQuery проверить плагин на DIV

Я пытаюсь использовать плагин validate div, как показано в ответе на этот вопрос :

<script type="text/javascript">
  $("#pseudoForm").validate({
    onfocusout:true,
    rules:{
      first_name:"required",
      last_name:"required"
    }
  });
</script>
<!-- whatever -->
<div id="pseudoForm">
  <input type="text" name="first_name"/>
  <input type="text" name="last_name"/>
</div>

У меня все в форме. 

Я получаю кучу разных ошибок в разных браузерах.

  • Firefox: валидатор не определен 
  • IE8: 'settings' имеет значение null или не является объектом
  • Chrome: невозможно прочитать свойства 'settings' из неопределенного

Любая помощь приветствуется!

30
JohnIdol

Это не тот ответ, который вы хотите услышать, но другой ответ неверен (возможно, он был прав , когда он был опубликован, но с тех пор произошли некоторые серьезные изменения плагина проверки jQuery). 

Плагин проверки (в настоящее время) предназначен для работы с <form> и only с <form>. Вы также можете заметить, что вся документация плагина ссылается на форму, а не на любой другой универсальный контейнер.

Сам плагин отслеживает внутренне validator.currentForm, который ссылается на this переданного селектора, получая .elements и т.д., Что ... он на самом деле не будет работать по-другому, не так, как написана текущая версия ,.

Общее решение/альтернативный подход здесь: call .validate() непосредственно для элемента <form> (скорее, для jQuery-оболочки), а не для любого другого контейнера. Если вам нужно разделить элементы <form>, используйте <fieldset> , возможно, используйте параметр ignore: ':hidden' в .validate(), если вы не хотите проверять поля ввода, которые не видны пользователю.

52
Nick Craver

Откройте jquery.validate.js или jquery.validate.min.js и найдите (ctrl + F) " label " и replaceAll с требуемым тегом: 

Пример: div

затем выполните проверку.

0
Rushabh Jariwala

Вам не хватает закрывающей скобки. Попробуйте это вместо этого:

$("#pseudoForm").validate({
    onfocusout:true,
    rules:{
        first_name:"required",
        last_name:"required"
    }
});
0
treeface

Вы можете получить ту же ошибку, если выберете форму по классу

$(".form_class").validate(...

вместо ID $("#form_id").validate(...

или имя тега $("form").validate(...

0
tomas.satinsky