如何使用 jquery.validate.min.js 验证在数组类型中具有名称的输入字段

how to validate input field which has name in array type using jquery.validate.min.js

我有 input 个标签字段,在 array 中有 name 属性

<div class="form-group">
    <label class="col-sm-2 control-label">
        <span style="color: red;">*</span>
        Title</label>
    <div class="col-sm-8 general-title tooltip-demo">

<input type="text" name="form[1][title]" id="title" value="" size="64" class="form-control" data-toggle="tooltip" data-placement="top" data-html="true" title="" required="required" data-original-title="Enter Notification Title">    </div>
</div>
 <div class="form-group">
    <label class="col-sm-2 control-label">
        <span style="color: red;">*</span>
        Title 2</label>
    <div class="col-sm-8 general-title tooltip-demo">

<input type="text" name="form[2][title]" id="title" value="" size="64" class="form-control" data-toggle="tooltip" data-placement="top" data-html="true" title="" required="required" data-original-title="Enter Notification Title">    </div>
</div>

我知道,我可以像

那样做验证
$(document).ready(function() {
    $("#frmforgot").validate({
        rules: {
            form[1][title]: {
                required: true
            },
            form[2][title]: {
                required: true
            }
        }
    });
});

但我不想将每个验证规则分开,因为我有 30 个不同的字段所以我不想写 30 * 2 规则。

如果有人知道简单的方法,请建议我。

提前致谢

您可以在将规则传递给验证函数之前创建您的规则 -

var rules = {};
$('input[name^=form]:text').each(function() {
    rules[this.name] = { required: true };
});

$(document).ready(function() {
  $("#frmforgot").validate({
    rules: rules
  });
});

您可以使用 the .rules() method 将任何规则批量分配给字段。

就这么简单...

$(document).ready(function() {

    $("#frmforgot").validate();

    $('input[name^="form"]').each(function() {
        $(this).rules('add', {
            required: true
        });
    });

});

在你的情况下,使用数组格式命名并不重要。 input[name^="form"] 选择器正在寻找以字母 form.

开头且带有 name 的任何 input

演示:jsfiddle.net/3e9d4v7q/


这是一个有争议的问题,因为你 已经 在那些 input 元素上有 required="required",所以你这样做不需要再次分配此规则。 jQuery 验证插件将简单地使用任何 HTML5 属性来自动分配相应的规则。

演示 2:jsfiddle.net/3e9d4v7q/1/