【发布时间】:2015-12-16 23:23:42
【问题描述】:
我试图确保选择了一个复选框,但是似乎没有选择验证插件的 group 选项以及自定义 addMethod。我已经阅读了文档并阅读了多个堆栈溢出帖子-在发现类似问题的同时,我没有看到任何以这种方式失败的问题-换句话说,我被难住了。非常感谢任何帮助。谢谢。
这是一个代码笔,例如:http://codepen.io/jaegs/pen/KVVYYw
注意:emailField 有一条规则被注释掉,取消注释并点击submit 按钮表明验证插件正在工作。
JS
$.validator.addMethod('groupCheck', function(value) {
return $('.msGroup:checked').size() > 0;
}, 'Please choose at least one subscription.');
var checkboxes = $('.msGroup');
var checkbox_names = $.map(checkboxes, function(e, i){
return $(e).attr("name");
}).join(" ");
$('#formInput').validate({
debug: true,
//rules: {
// emailField: "required"
//},
groups: {
checks: checkbox_names
},
errorPlacement: function(error, element){
if (element.attr("name") == "emailField"){
error.appendTo('#emailError');
} else {
error.appendTo('#checkboxError');
}
}
});
HTML
<form id="formInput">
<label>E-mail Address*</label>
<input type="text" name="emailField" id="emailField"/>
<div id="emailError"></div>
<h4>Select the e-mails you would like to receive</h4>
<ul>
<li>
<input class="msGroup" type="checkbox" name="one" id="one" />
<label for="one">one</label>
</li>
<li>
<input class="msGroup" type="checkbox" name="two" id="two" />
<label for="two">two</label>
</li>
<li>
<input class="msGroup" type="checkbox" name="three" id="three" />
<label for="three">three</label>
</li>
</ul>
<button type="submit" id="submitButton" name="submitButton">SUBSCRIBE</button>
<div id="checkboxError"></div>
</form>
【问题讨论】:
-
复选框是非常常见的
<form>元素,您永远不需要编写自定义方法/规则来简单地使它们成为“必需”以进行验证。
标签: jquery forms jquery-validate