jQuery Validate onclick: false 不适用于复选框或选择

Posted

技术标签:

【中文标题】jQuery Validate onclick: false 不适用于复选框或选择【英文标题】:jQuery Validate onclick: false not working for checkbox or select 【发布时间】:2012-09-08 03:56:03 【问题描述】:

我正在尝试禁用验证,直到发生错误后提交。 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!",
             , 
         );
);

【问题讨论】:

这个小提琴有问题吗? jsfiddle.net/jUDEk? (PS,onclick 仍然拼写不正确) 不,它没有,但是如何? 里面没有错字:) 显然我今天的 14 小时对我解决问题的能力并不好。很抱歉浪费你的时间。谢谢 【参考方案1】:

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

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

【讨论】:

以上是关于jQuery Validate onclick: false 不适用于复选框或选择的主要内容,如果未能解决你的问题,请参考以下文章

JQuery validate

Onclick 验证表单,如果有效仅提交表单

在 jquery 中传递一个 self 对象

jQuery.validate 表单动态验证

jQuery Validate验证框架详解(jquery.validate.min.js)

Jquery Validate Plugin 仅应用包含 jquery.validate.min 文件的规则