4

エラーが発生してから送信するまで検証を無効にしようとしています。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!",
             }, 
         });
});
4

1 に答える 1

0

選択、ラジオ、およびチェックボックスのイベント動作は、ブラウザによって一貫性がありません。

change または onchange イベントは、ラジオ/チェックボックスに使用されます。

于 2012-09-15T01:27:25.557 に答える