4

我正在尝试禁用验证,直到发生错误后提交。onfocusout 处理程序工作正常,但 onclick 不适用于复选框或选择元素。

我写了以下内容作为一个简单的例子。如果您提交空白表格,然后更正复选框并选择,则它们不应立即验证。您将看到文本输入正常工作。

无论 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!",
             }, 
         });
});
4

1 回答 1

0

选择、单选和复选框在不同浏览器中的事件行为不一致。

change 或 onchange 事件用于单选/复选框。

于 2012-09-15T01:27:25.557 回答