按名称分组输入元素的jQuery验证插件

按名称分组输入元素的jQuery验证插件,jquery,jquery-validate,Jquery,Jquery Validate,我的插件在我的一半表单中都能正常工作,但我也有多个同名表单元素,如下所示: <tr class="orderItems"> <td><input type="text" name="code[]" class="codeRowForm" value="" /></td> <td> <se

我的插件在我的一半表单中都能正常工作,但我也有多个同名表单元素,如下所示:

               <tr class="orderItems">
                  <td><input type="text" name="code[]" class="codeRowForm" value="" /></td>
                  <td>
                      <select class="selectProductOrders" name="selectProductOrders[]">
                         <option value="default" disabled selected>Select a product</option> 
                     </select>
                  </td>
                  <td><input type="number" pattern="[0-9]*" name="rsp[]" class="rsp" value="" /></td>
                  <td><input type="number" pattern="[0-9]*" name="trade[]" class="trade" value="" /></td>
                  <td><input type="number" pattern="[0-9]*" name="discount[]" class="discount" value="0" /></td>
                  <td><input type="number" pattern="[0-9]*" name="qty[]" class="qty" value="" /></td>
                  <td><input type="number" pattern="[0-9]*" name="cost[]" class="cost" value="" /></td>
                  <td class="deleteOrderRow"><a onclick="return false;" href="#"><img class="addRemoveOrderButton" src="img/deleteOrderRow.png" /></a></td>
              </tr>

选择产品
会重复多次,具体取决于用户决定在表单中拥有多少订单项。因此,如果每行中的名称都相同(例如
name=code[]
),我将如何使用插件应用jQuery表单验证:


谢谢

如果每个
名称
属性都是唯一的,例如
code[4]
code[9]
等,则可以通过在引号中用括号括起名称来进行验证

演示:

您还可以根据
名称的第一部分分配规则。将相同规则分配给
名称中包含
代码的所有字段,例如
代码[4]
代码[9]
,等等

$('[name*="code"]').each(function() {
    $(this).rules('add', {
        required: true,
        // other rules
        messages: {  // optional custom messages
            // custom messages
        }
    });
});
演示:


否则,如果您有多个字段都包含完全相同的
名称
属性,则此插件将不起作用。如果不能唯一地针对特定的
输入
,那么就不能合理地期望任何JavaScript验证能够工作。坏掉的:

这就是插件让人头疼的原因。首先,你必须展示你的jQuery代码。第二,如果所有名称都完全相同,您如何期望它正常工作?这就是插件跟踪字段的方式。或者每个名称的括号内是否有唯一的索引
name=“code[2]”
谢谢您的回复。我明白你的意思,但我更希望找到一种方法来针对多个同名的类。我找到了一种方法,就是在验证启动后通过类循环,这样做很好。不过谢谢你,为我清理了很多
$('[name*="code"]').each(function() {
    $(this).rules('add', {
        required: true,
        // other rules
        messages: {  // optional custom messages
            // custom messages
        }
    });
});