1

我对此进行了很多搜索,但没有找到任何解决方案。我想在 JQuery validate 中验证多个名为文件输入和下拉列表的数组。

<td> <input type="text" class="times" name="times[]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times" name="times[]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times" name="times[]" /> </td>
</tr>

我添加了这样的 JQuery 验证代码:

$("#formname").validate(
    {
    rules:{
        times:{required:true, digits:true}
    }}
    );

但它仅验证第一个输入并仅显示错误消息,无论是否输入了第二个或第三个输入字段。

我不想更改此“times[]”名称,因为功能取决于此。只有我想要使用 JQuery validate 进行验证。

有什么技巧可以解决这个问题吗?

任何帮助,将不胜感激。

谢谢

4

1 回答 1

1

该插件不能很好地处理具有相同名称的字段。这是我在我的应用程序中解决它的方法。

我给所有重复字段不同的名称,并将验证方法名称放在类中。

<td> <input type="text" class="times required digits" name="times[0]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times required digits" name="times[1]" /> </td>
</tr>
<tr>
<td> <input type="text" class="times required digits" name="times[2]" /> </td>
</tr>

您可以使用如下代码在提交之前删除索引:

$("#formname").validate({
    ...
    submitHandler: function(form) {
        $(form).find(":input[name*='[']").each(function() {
            this.name = this.name.replace(/\[\d+\]/, '[]');
        }
        form.submit();
    }
});
于 2013-10-14T15:49:30.660 回答