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) {}
            });

我可能有“n”行,这将有“n”个同名元素这里验证仅适用于第一行(tr)

4

2 回答 2

1

您无法验证共享相同的多个输入name。jQuery Validate 插件要求每个输入都包含一个唯一 name的,因为这name是插件跟踪输入的方式。

解决方案只是使用计数器作为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 回答