Добавление строки таблицы динамически на основе некоторого 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)
Вы не можете проверять несколько входов, имеющих одно и то же 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>' );
Также см. Этот ответ: qaru.site/questions/4208459/...
Используйте.each() для проверки нескольких элементов с тем же именем.
$(".traineeDetailsForm").each(function () {
$(this).validate({
errorContainer: "#error_div",
errorPlacement: function(error, element) {}
});
});