2010-03-08 4 views
3

jQuery ajaxForm 플러그인의 "beforeSubmit"옵션을 사용하여 데이터의 유효성을 검사하려고하지만 유효하지 않은 양식 필드가있는 경우에도 양식이 제출됩니다. 내가 어디로 잘못 갔니? 덕분에,jQuery before ajaxForm

$(document).ready(function() { 
function validator(){ 
     $("#commentForm").validate(); 
} 

    $('#commentForm').ajaxForm({ 
     dataType: 'json', 
     url: "http://highlandfamilyeyecare.com/contactengine.php", 
     beforeSubmit: validator, 
     success:  function(data) { 
      $('ul.form').fadeOut("slow"); 
      $('ul.form').html(data.formula).slideDown('slow');} 
    }); 
}); 

그리고 HTML 다음 documentation

<ul class="form"> 


    <li>  
     <form method="post" action="form.php" id="commentForm"> 

     <label class="white">Your Name</label> 
     <input class="text-input required" type="text" name="name" /></li> 

    <li> 
     <label class="white">Email</label> 
     <input class="text-input required email" type="text" name="email"/></li> 

    <li> 
     <li><input type='submit' value="Submit" /> 
     </form></li> 

</ul> 

답변

6

beforeSubmit() 함수가 아무 것도 반환하지 않습니다.

당신은 할 수 있습니다 :

function validator() { 
    return $("#commentForm").validate(); 
} 

$('#commentForm").validate()이 존재하고 올바르게 참/거짓 반환 추정.

+0

감사합니다.이 기능은 ".form"을 함수의 끝에 추가했을 때 작동했습니다. ********* function validator() {return $ ("# commentForm"). validate(). form; } – superUntitled

3

, 유효성 검사 기능은 양식 제출을 방지하기 위해 false을 반환해야합니다.

+0

+1 for rtfm. 왜 유효성 검사가 잘못된 메시지를 반환하지 않는지 알 필요가 있습니다. – superUntitled

2

validate() 메서드가 유효성 검사 플러그인이라고 가정하면 이것이 올바른 방법입니다. 유효성 검증 메소드에 오류가 있으면 양식이 제출되지 않습니다.

$('#commentForm').validate({ 
     errorClass: "invalidField", 
     submitHandler: function() { 
      $('#commentForm').ajaxSubmit(ajaxFormOptions); 
     } 
    }); 

여기에서 ajaxFormOptions은 제출 옵션입니다.

+0

submitHandler를 추가해야합니다. function (form) {$ (form) .ajaxSubmit 등 – benpalmer