Почему-то вы звоните validate()
дважды по одной и той же форме, вам нужен только один:
// $("#genForm").validate(); No need for this
$("#genForm").validate( {
rules: {
agree: {
required: true
}
}
});
Демо: http://jsfiddle.net/8MV5F/
Вызов validate()
без параметров имеет некоторое (настраиваемое) поведение по умолчанию, одним из которых является добавление правила required
к элементам с class='required'
, поэтому поле электронной почты работало. Для этого вы также можете использовать атрибут required
и, кроме того, вы можете использовать type="email"
для подтверждения адреса электронной почты без указания его в своих правилах.
Вот простой пример: http://jsfiddle.net/8MV5F/2/
<form id="genForm" method="post" action="verify.php">
<label>Email:<input name="Email" type="email" required></label>
<label>I accept the terms and conditions.
<input type="checkbox" name="agree" value="1" required></label>
<input class="btn primary" type="submit" value="Submit">
</form>
$("#genForm").validate();
Преимуществом этого является возврат к проверке собственного браузера, если она поддерживается, в случае, если JavaScript отключен или даже просто не работает.