在JQuery Validate中验证多个“数组命名”文件输入和下拉列表

时间:2013-10-14 15:39:37

标签: javascript jquery jquery-validate

我已经搜索了很多这方面但没有找到任何解决方案。我想在JQuery验证中验证多个数组命名文件输入和下拉列表。

<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 Validate Code,如下所示:

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

但它只是验证第一个输入并显示错误信息,只是输入了第二个或第三个输入字段。

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

有没有可用的技巧?

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分: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();
    }
});