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れるすべてのフィールドに同じルールを割り当てます。namecode[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 に答える