エラーが発生してから送信するまで検証を無効にしようとしています。onfocusoutハンドラーは正常に機能しますが、onclickはチェックボックスまたは選択要素に対しては機能しません。
簡単な例として以下を書きました。空白のフォームを送信してからチェックボックスを修正して選択した場合、すぐに検証されないはずです。テキスト入力が正しく機能していることがわかります。
onclickハンドラーに関係なく、selectが機能する場合があります。それはサファリで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!",
},
});
});