0

一部に基づいてテーブル行を動的に追加するcount

        var del_count=$("#trainee_count").val();
        var row_counter=0;
        for(var i=0;i<del_count;i++){
        row_counter++;
        $(".add_trainee").append(   
            '<tr>'+
                '<td><input type="text" name="name"  class="required"  /></td>'+
                '<td><input type="text" name="jobTitle"  /></td>'+
                '<td><input type="text" name="email"  id="email" class="required email"  /></td>'+
                '<td><input type="text" name="phone" class="required phone"   /></td>'+
                '<td  class="my_laptop" align="center" valign="middle"><input type="checkbox" class="laptop_checkbox"   name="isLaptopRequired.'+row_counter+'"  checked /></td>'+
            '</tr>' 

            );
        }

基本的に、同じ名前の複数の要素の検証を試みています。

検証:

    $(".traineeDetailsForm").validate({ 
                errorContainer: "#error_div",
                errorPlacement: function(error, element) {}
            });

i は 'n' 個の行を持つことができ、それは 'n' 個の同じ名前の要素を持ちます ここでの検証は最初の行 (tr) のみに適用されます

4

2 に答える 2

1

同じ を共有する複数の入力を検証することはできませんname。jQuery Validate プラグインでは、プラグインが入力を追跡する方法であるため、すべての入力に一意の値が含まれている必要があります。 namename

解決策は、チェックボックスで行ったのと同じように、カウンターをname一意にすることの一部として使用することです...

$(".add_trainee").append(   
        '<tr>'+
            '<td><input type="text" name="name' + count + '"  class="required"  /></td>'+
            '<td><input type="text" name="jobTitle' + count + '"  /></td>'+
            '<td><input type="text" name="email' + count + '"  id="email" class="required email"  /></td>'+
            '<td><input type="text" name="phone' + count + '" class="required phone"   /></td>'+
            '<td  class="my_laptop" align="center" valign="middle"><input type="checkbox" class="laptop_checkbox"   name="isLaptopRequired.'+row_counter+'"  checked /></td>'+
        '</tr>' );

この回答も参照してください: https://stackoverflow.com/a/18905194/594235

于 2013-09-23T15:51:17.597 に答える
-1

.each() を使用して、同じ名前の複数の要素を検証します。

$(".traineeDetailsForm").each(function () {
     $(this).validate({ 
          errorContainer: "#error_div",
          errorPlacement: function(error, element) {}
     });
});
于 2013-09-23T14:23:46.377 に答える