2014-01-08 3 views
0

문제점 : parsleyjs가 양식을 검증하지 않습니다. $('#contact-form').parsley('isValid')이 true를 반환하기 때문에이 결과를 얻었습니다. false를 반환 할 것으로 예상됩니다. 예를 들어 모든 입력란에 parsley-required="true"을 설정했지만 입력란이 비어있는 상태로 양식을 제출하면 유효성 검사 메시지가 표시되지 않고 성공적으로 제출됩니다.양식이 parsleyjs에 의해 검증되지 않음

참고 :이 프로젝트에서는 부트 스트랩도 사용하고 있습니다.

<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> 

그리고 </body> 태그를 배치되는 자바 스크립트 :

여기에 양식 HTML입니다.

<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> 

은 내가 (HTML5에 대한 제안) 입력 태그의 속성으로 required 대신 parsley-required="true"의를 사용하여 시도했습니다. 차이 없음. 다른 유형의 제약도 시도해 보았지만 어느 것도 작동하지 않습니다.

주어진 오류가 없으며 $('#contact-form').parsley('isValid') 값을 반환하기 때문에 스크립트가 올바르게로드되고 있음을 확신합니다.

아이디어가 있으십니까?

답변

0

파슬리가 1.2.2로 업데이트되었습니다. (문제의 코드에서 1.1.18을 사용하고있었습니다) 이제는 작동합니다.

관련 문제