1

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

               <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>

<tr>根据用户决定在表单中拥有多少订单项,这会重复多次。因此,如果每行中的名称都相同(例如name=code[]),我将如何使用插件应用 jQuery 表单验证:docs.jquery.com/Plugins/Validation/validate

谢谢

4

1 回答 1

2

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

请参阅文档:“具有复杂名称(括号、点)的字段”

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        // your other options,
        rules: {
            'code[1]': {
                // rules
            },
            'code[2]': {
                // rules
            }
        }
    });

});

演示:http: //jsfiddle.net/TKeEc/

您还可以根据name. 将相同的规则分配给包含code在 中的所有字段name,例如code[4]code[9]等。

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

演示:http: //jsfiddle.net/TKeEc/1/

否则,如果您有多个字段都包含完全相同的name属性,则此插件将无法运行。如果您不能input唯一地定位特定对象,您就不能合理地期望任何 JavaScript 验证都能正常工作。破碎:http: //jsfiddle.net/4ZV9D/

于 2013-03-01T16:24:44.700 回答