我有input
个name
标记字段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
个规则。
如果有人知道简单的方法,请建议我。
提前致谢
答案 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
。
由于 已经 对required="required"
元素input
有{{1}},因此没有任何意义,因此您无需分配此内容再次统治。 jQuery Validate插件将简单地使用任何HTML5属性自动分配相应的规则。
DEMO 2:jsfiddle.net/3e9d4v7q/1/