2013-10-23 85 views
1

我使用的是在http://jqueryvalidation.org/上找到的Jquery Validation腳本,我希望設置它,所以當你點擊一個按鈕(不是提交按鈕!)時,它會檢查表單以進行驗證。如果出現錯誤,它會在出現錯誤的字段旁邊顯示錯誤,但也會在表單底部顯示一條消息,指出存在需要修復的錯誤。Jquery Validation with errorContainer

我似乎無法得到底部的消息工作。我試圖使用Jquery Validation具有的errorContainer,但它似乎不起作用。

HTML:

<form id="myform" method="post"> 
    <p> 
     <label for="emailAddress">Email Address*</label> 
     <input id="emailAddress" name="emailAddress" class="Span12 EmailAddress" type="email" data-rule-required="true" data-rule-email="true" data-rule-minlength="5" data-msg-required="Provide an email" data-msg-email="Provide a proper email" data-msg-minlength="Email must be at least 5 characters" /> 
    </p> 
    <p> 
     <input id="SendMessage" type="button" value="Send Message" class="Button ButtonLarge" /> 
     <div class="form-errors"> 
      <h4>There are errors in your form submission, please see details in the form!</h4> 
     </div> 
    </p> 
</form> 

的Jquery:

$(document).ready(function() { 
    $('#SendMessage').click(function() { 
     $("#myform").valid({ 
      errorContainer: ".form-errors" 
     }); 
    }); 
}); 

我已經使用這個代碼的jsfiddle這裏:

http://jsfiddle.net/bluecaret/Qh485/

回答

1

valid()方法不接受參數,只返回一個布爾值(link),所以如果你仍然想使用valid(),你必須以不同的方式去解決它。

我做了一個快速的回答你的問題,只是當電子郵件是有效的還是無效的使用if聲明,隱藏或顯示消息:

$(document).ready(function() { 
    $('#myform').validate({ 
     //any parameters you want to add 
    }); 
    $('#SendMessage').click(function() { 
     if(!($("#myform").valid())){ 
      $('.form-errors').show(); 
      return false; 
     } else { 
      $('.form-errors').hide(); 
     }  
    }); 
}); 

工作fiddle

+0

嗯。這將工作。我使用vaild()的唯一原因是因爲我在其他地方讀過,當單擊按鈕(而不是提交按鈕)時需要使表單工作。把驗證()不起作用。也許有一種方法可以在使用validate()時使它適用於按鈕?我可能稍後需要其他參數。 – BlueCaret

+1

如果是這樣的話,你可以在點擊函數之前運行'validate()'來使用你以後可能要添加的任何其他參數,然後在if語句中運行return false。我會更新我的代碼。 – rogMaHall

+0

這會很好!非常感謝,非常有幫助! – BlueCaret