我有一个我用Perl CGI处理的HTML表单,如下所示:
<form action="process.cgi" id="main">
<input type="text" name="foo" class="required" />
<input type="text" name="foo" class="required" />
<input type="text" name="foo" class="required" />
</form>
我正在使用jQuery Validation plugin验证它。麻烦的是,当我调用$('#main').valid()
时,它只检查第一个字段是非空的。如何检查所有字段?
答案 0 :(得分:-1)
OFFICIAL DOCUMENTATION:
jqueryvalidation.org/reference/#link-markup-recommendations
对于需要验证的所有输入元素,“强制要求:''name'属性,如果没有此插件,插件将无效。”name“属性也必须是唯一的表单,因为这是插件跟踪所有输入元素的方式。但是,每组radio或checkbox元素将共享相同的“名称”,因为此分组的值代表表单数据的单个部分。 “
<input type="text" name="foo" class="required" />
<input type="text" name="foo" class="required" />
<input type="text" name="foo" class="required" />
引用OP:
麻烦的是,当我拨打
$('#main').valid()
时,它只会检查。{ 第一个字段是非空的。如何检查所有字段?
它与.valid()
没有任何关系,使用其他jQuery Validate方法也会失败。这是因为所有三个字段都具有相同name
的{{1}}。 对于此插件,每个foo
必须具有唯一 input
。
DEMO:jsfiddle.net/xaFZj/
修改强>:
使用此插件时 不能重复名称。此演示清楚地表明,当name
属性重复时,插件将失败。没有解决方法,因为name
属性是插件跟踪表单元素的方式。
<强> jsfiddle.net/ed3vxgmy/ 强>
唯一的例外是广播或复选框组,其中每个分组中的元素将共享相同的name
。