Почему плагин проверки jquery не проверяет мой флажок? - PullRequest
2 голосов
/ 26 марта 2012

Этот код скопирован из другого файла, и он работает в этом файле, я проверил переменную и идентификатор формы и уверен, что имя соответствует коду js.Текстовое поле в genFrom также работает, только флажок не работает.

<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script>
$(document).ready(function(){
    $("#genForm").validate();
    $("#genForm").validate( {
        rules: {
            agree: {
                required: true
            }
        }
    })
});
</script>
<form id="genForm"  method="post" action="verify.php">
<div class="container">
    <div class="hero-unit">
        <h1>Subscribe for final</h1>
    </div>
    <div class="clearfix">
        <label>Email</label>
        <div class="input">
            <input name="Email" type="text" class='required'>
        </div>
    </div>
    <br>
    <br>
    <div class="clearfix">
    <label>Agreements:</label>
        <div class="input"> 
        <ul class="inputs-list">
            <li>                                      
            I accept the terms and conditions.
            <!-- Check box is here, not working -->
            <input type="checkbox" name="agree" value="1">
            </li>
        </ul>
        </div> 
    </div> 
    <br>
    <input class="btn primary" type="submit" value="Submit">
</form>

1 Ответ

4 голосов
/ 26 марта 2012

Почему-то вы звоните 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 отключен или даже просто не работает.

...