2014-01-08 5 views
0

Проблема: parsleyjs не подтверждает мою форму. Я пришел к такому выводу, потому что $('#contact-form').parsley('isValid') возвращает true, когда я ожидаю, что он вернет false. Например, я установил parsley-required="true" во все мои поля, но когда форма отправляется со всеми полями пустым, она успешно отправляется вместо запуска сообщения проверки.Форма не проверяется parsleyjs

FYI Я также использую Bootstrap в этом проекте.

Вот форма HTML:

<form method="post" id="contact-form" parsley-validate> 
         <div class="form-group"> 
          <label for="contact-name">Name</label> 
          <input type="text" class="form-control" id="contact-name" placeholder="Name" parsley-required="true" name="name"> 
         </div> 
         <div class="form-group"> 
          <label for="contact-email">Email address</label> 
          <input type="email" class="form-control" id="contact-email" placeholder="Email" parsley-required="true" parsley-type="email" name="email"> 
         </div> 
         <div class="form-group"> 
          <label for="contact-message">Message</label> 
          <textarea class="form-control" id="contact-message" placeholder="Message" parsley-required="true" name="message"></textarea> 
         </div> 
         <div> 
          <input type="submit" name="submit" class="btn btn-default" value="Submit"> 
          <input class="btn btn-default" type="reset" value="Reset" id="contact-reset"> 
         </div> 
</form> 

И JavaScript, который размещается над </body> тега.

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript" charset="utf-8" src="js/bootstrap.min.js"></script> 
<script src="survey/Parsley.js-1.1.18/parsley.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function() { 
     $('#contact-form').submit(function(e) { 
      e.preventDefault(); 
      if ($('#contact-form').parsley('isValid')) { 
       $.post("mail.php", { 
        name: $('#contact-name').val(), 
        email: $('#contact-email').val(), 
        message: $('#contact-message').val() 
       }).done(function(data) { 
          $('#contact-form').parsley('destroy'); 
          $('#contact-form')[0].reset(); 
          alert("Message successfully sent."); 
         }); 
       return true; 
      } else return false; 
     }); 

     $('#contact-reset').click(function() { 
      $('#contact-form').parsley('destroy'); 
     }); 

    }); 

</script> 

Я попытался с помощью required вместо parsley-required="true" в качестве атрибута для ввода тегов (предложено для HTML5). Нет разницы. Я также пробовал другие типы ограничений, и они тоже не работают.

Нет никаких ошибок, и я уверен, что сценарий загружается правильно, так как $('#contact-form').parsley('isValid') возвращает значение.

Любые идеи?

ответ

0

Обновленная петрушка до 1.2.2 (я использовал 1.1.18 в коде в вопросе), и теперь это работает.

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