2012-09-15 70 views
4

我想禁用驗證,直到發生錯誤後提交。 onfocusout處理程序工作正常,但onclick不適用於複選框或選擇元素。jQuery驗證onclick:false不工作複選框或選擇

我寫了下面的例子作爲一個簡單的例子。如果您提交空白表格,然後更正複選框並選擇,則不應立即進行驗證。你會看到文本輸入工作正常。

選擇似乎有時工作,無論onclick處理程序。它確實在safari中驗證了onclick,沒有在Chrome中驗證。

小提琴:http://jsfiddle.net/ebMdq/6/

<form id="myForm" action=""> 
Name: <input type="text" name="fname" /><br /> 
Do you Rawk? <input type="checkbox" name="rock" /><br /> 
choose color: <select id="color" name="color" class="required"> 
<option value="">Choose One</option> 
<option value="blue">blue</option> 
<option value="blue">red</option> 
</select><br /> 
<input type="submit" /> 
</form>​ 

$(function() { 
var validator = $("#myForm").validate({ 
      onfocusout: false, 
      onkeyup: false, 
      onlclick: false, 
      rules: { 
       fname: "required", 
       rock: "required", 
       color: "required" 
       }, 
      messages: { 
       fname: "Enter your firstname", 
       rock: "you know you do", 
       color: "pick one!", 
      }, 
     }); 
}); 
+0

這個小提琴是否出現問題? http://jsfiddle.net/jUDEk/? (PS,'onclick'仍然拼寫不正確) –

+0

不,它不是,但是如何? – Tamarick

+0

有沒有錯字':)' –

回答

0

選擇,收音機和複選框有不同的瀏覽器不一致的事件行爲。

更改或onchange事件用於收音機/複選框。