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

时间:2016-09-08 10:52:58

标签: jquery input jquery-validate

我有inputname标记字段array属性<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 * 2

但我不想将每个验证规则分开,因为我有30个不同的字段,所以我不想写 Linux LT0124 3.13.0-95-generic #142-Ubuntu SMP Fri Aug 12 17:00:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 个规则。

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

提前致谢

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

您可以使用the .rules() method批量指定字段的任何规则。

这很简单......

$(document).ready(function() {

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

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

});

在您的情况下,命名使用数组格式并不重要。 input[name^="form"]选择器正在寻找带有input的{​​{1}}字母name开头的任何form

DEMO:jsfiddle.net/3e9d4v7q/

由于 已经 required="required"元素input有{{1}},因此没有任何意义,因此您无需分配此内容再次统治。 jQuery Validate插件将简单地使用任何HTML5属性自动分配相应的规则。

DEMO 2:jsfiddle.net/3e9d4v7q/1/