下午好,我遇到了以下问题。
我使用jQuery Validation插件验证我的表单v1.13.0客户端。
工作得很好。
但我无法解决的问题是:
我有一个字段名称" product []",这是一个数组。 我可能有一个,或者我可能有20个产品。
这是我的代码:
data_emissao: {required: true},
forma_pagamento: {required: true},
produto[]: {required: true}, // tried this with no sucess
有人遇到过这个问题吗?
答案 0 :(得分:2)
两个问题......
1)如果您的字段名称包含括号,圆点或其他特殊字符,则必须将名称括在引号中。
"produto[]": {
required: true
}
2)但是,除非input
包含此确切名称name="produto[]"
,否则它将无效,因为您无法在rules
.validate()
选项中声明数组。 rules
选项仅接受单个字段名称的列表。
两种可能的解决方案......
1)您可以使用.rules()
方法,如下所示。使用jQuery“starts with”选择器选择整个数组,使用jQuery .each()
将.rules('add')
方法应用于该组中的每个字段。
$('[name^="produto"]').each(function() { // select elements using "starts with" selector
$(this).rules('add', {
required: true,
// other rules
});
});
2)但是,如果唯一的规则是required
,那么您根本不需要使用任何JavaScript来声明它。您可以改为使用required
HTML5属性,jQuery Validate插件仍然可以使用它。
<input type="text" name="produto[0]" required="required" />
<input type="text" name="produto[1]" required="required" />
<input type="text" name="produto[2]" required="required" />
<input type="text" name="produto[3]" required="required" />
<input type="text" name="produto[4]" required="required" />
答案 1 :(得分:-1)
如果您使用produto
作为数组,则必须指定其索引,否则它将无法按预期工作。尝试使用produto[0]
表示您的阵列至少需要一个值。