验证插件的此功能有些问题: http://jqueryvalidation.org/require_from_group-method
表格的相关部分:
<input class="org-group" type="checkbox" name="org[1]" id="org[1]" value="on">
<input class="org-group" type="checkbox" name="org[2]" id="org[2]" value="on">
<input class="org-group" type="checkbox" name="org[3]" id="org[3]" value="on">
此复选框列表是动态的。它可能有2个条目,或50个条目,这就是我在表单中使用数组的原因。我希望插件能够确保检查org-group类中的一个xxx复选框。
我在插件中使用它:
$( "#orgform" ).validate({
rules: {
org[]: {
require_from_group: [1, ".org-group"]
},
然而,它不起作用。无论检查的盒子数量多少,表格都会提交。 “submithandler”工作正常。我在这个表单中有一些其他文本字段是必需的。如果未填写这些字段,则验证运行正常。
我做错了什么?
答案 0 :(得分:2)
您需要确保已经引用了所有必需的JQuery库。如果您只使用核心库,则验证无法正常运行。
确保您还引用了additional-methods.min.js
获得所有必需的引用后,您需要修改html内容,以便所有复选框都具有相同的name
。如果所有名称都是唯一的,则验证无效。 ids
显然必须保持独特。
更新了Html :
<form id="orgform">
<input class="org-group" type="checkbox" name="org" id="org[1]" value="on">
<input class="org-group" type="checkbox" name="org" id="org[2]" value="on">
<input class="org-group" type="checkbox" name="org" id="org[3]" value="on">
<input class="org-group" type="checkbox" name="org" id="org[4]" value="on">
<input type="submit" value="Validate">
</form>
请注意,所有checkboxes
都有name
&#34; org&#34;。
在您更新了html后,将通话更新为validate
以引用&#34; org&#34;而不是&#34; org []&#34;。如果您检查控制台,您会注意到以下错误:
Uncaught SyntaxError: Unexpected token [
这是因为规则属性不接受[
或]
通过html更改,您还需要更新您的JQuery。
更新了JQuery:
$("#orgform").validate({
rules: {
org: {
require_from_group: [1, ".org-group"]
}
}
});
注意:请参阅上面链接的小提琴示例以获取一个工作示例。