我有一个具有相同名称和类的文本框。我使用jQuery validate来根据需要验证它。这里的问题是,当我提交表单而不输入第1个复选框以外的字段的值时,错误消息显示在第一个文本框旁边。 例如,如果我在不输入第二个文本框的值的情况下提交表单,它将在第一个文本框附近显示错误消息。我认为这是因为使用相同的名称/类进行验证。
我尝试过使用类和名称。没变。我的示例代码如下。有什么想法吗?
HTML部分
<input type="text" class="unit_price" name="add_purch_unit[]">
<input type="text" class="unit_price" name="add_purch_unit[]">
jQuery Part
$(".unit_price").rules("add", {
required:true
});
答案 0 :(得分:3)
$(".unit_price").rules("add", {
required:true
});
您的代码存在两个问题。
您无法将jQuery Validate方法附加到以多个元素为目标的jQuery选择器。这部分的解决方案是将方法包装在jQuery .each()
中。
$(".unit_price").each(function() {
$(this).rules("add", {
required:true
});
});
但是,您仍然无法复制name
属性。尽管我们解决了上述#1中的问题,将规则分配给class="unit_price"
的每个元素,但插件使用name
属性来跟踪所有输入元素。解决方案是您必须还为每个元素分配一个唯一的name
...此要求没有解决方法。
<input type="text" class="unit_price" name="add_purch_unit[1]">
<input type="text" class="unit_price" name="add_purch_unit[2]">