jQuery Validation插件 – 复选框

我自动生成一个测验页面,其中包含单选,多选和用户输入类型的问题。 为了确保所有问题都已得到解答,我使用的是jQuery Validation Plugin。

这适用于Radiobuttons和Textboxes,但在遇到复选框时失败。 我的表单(通过从MySQL提出问题和选择动态生成)代码生成如下:

 $(document).ready(function () { $("#form1").validate({ invalidHandler: function() { alert('FAILED validation'); }, submitHandler: function() { alert('PASSED validation'); } }); });   form.form1 label.error { display: none; }  
1 . Question One





2 . Question Two





3 . Question Three
Yes
No



截至目前,这只有在我选中每个复选框中的第一个选项时才有效。 (即使我选择选项2,3和4,它仍然会给我一个错误,说我需要检查第一个框。

我错过了我生成的HTML中的内容吗? 任何帮助表示赞赏。 如果您需要查看更多我的代码,请告诉我们。

(注意:每个组名对应于问题编号,每个ID元素基于问题表中的question_ID)

编辑:添加了Sparky建议的更改!

您的命名如下……

 name="0" 

根据您的doctype ,这可能是无效的HTML。 至少这是不好的做法,因为不是所有的浏览器或JavaScript框架都会处理它。 请参阅: https : //stackoverflow.com/a/79022/594235

但是,碰巧你的代码在我的Firefox版本中工作( 我可以选中方框2,3或4,我没有得到validation消息,要求我检查第一个框 ): http : //jsfiddle.net /波特/

我建议您更改您的name以匹配您的id ,这也是构建表单时的常见做法。

 name="check[0]" id="check[0]" 

您的弹出窗口是通过HTML5validation创建的。 但是,由于jQuery Validate插件会自动禁用HTML5validation,因此插件似乎没有正确实现。 请显示问题的jsFiddle演示。