jQuery验证错误消息放错位置

时间:2014-11-11 06:00:15

标签: jquery jquery-validate

我有一个具有相同名称和类的文本框。我使用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
    });

1 个答案:

答案 0 :(得分:3)

$(".unit_price").rules("add", { 
    required:true
});

您的代码存在两个问题。

  1. 您无法将jQuery Validate方法附加到以多个元素为目标的jQuery选择器。这部分的解决方案是将方法包装在jQuery .each()中。

    $(".unit_price").each(function() {
        $(this).rules("add", { 
            required:true
        });
    });
    
  2. 但是,您仍然无法复制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]">