4

我有一个使用 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(),它只检查第一个字段是否为非空。如何让它检查所有字段?

4

1 回答 1

2

官方文档:
jqueryvalidation.org/reference/#link-markup-recommendations

“强制:所有需要验证的输入元素都需要一个'name'属性,如果没有这个,插件将无法工作。一个'name'属性也必须对表单是唯一的,因为这是插件跟踪所有输入的方式“


<input type="text" name="foo" class="required" />
<input type="text" name="foo" class="required" />
<input type="text" name="foo" class="required" />

引用操作:

麻烦的是,当我打电话时$('#main').valid(),它只检查第一个字段是否为非空。如何让它检查所有字段?

它没有什么特别的关系,.valid()使用其他 jQuery Validate 方法也会失败。那是因为所有三个字段都具有相同namefoo对于这个插件,每个插件都input 必须有一个唯一的 name.

演示: jsfiddle.net/xaFZj/


编辑

使用此插件时,您不能有重复的名称。这个演示清楚地表明,当name属性重复时,插件会失败。没有解决方法,因为该name属性是插件跟踪表单元素的方式。

jsfiddle.net/ed3vxgmy/

唯一的例外是单选或复选框组,其中每个分组中的元素将共享相同的name.

于 2013-05-20T20:59:34.450 回答