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