Реакция на позицию select
Это часть кода, задача кода - при выборе select создавать дополнительное поле в которое вписывается дополнительный параметр. Для одного файла все работает, но для нескольких работает уже не правильно. Далее с помощью массива идет сортировка и запись в бд.
$("#type_item").on('change', function(){
if(($(this).val() == 2)||($(this).val() == 4)){
$("#num_material").show();
$("#num_material").prop('required', true);
} else {
$("#num_material").hide();
$("#num_material").prop('required', false);
}
})
$(".file_size").each(function () {
var $wrapper = $(".file_sizes", this);
$(".add-field", $(this)).click(function (e) {
$(".file_sizes_list:first-child", $wrapper)
.clone(true)
.appendTo($wrapper)
.find("input")
.val("")
.focus();
});
$(".file_sizes_list .remove-field", $wrapper).click(function () {
if ($(".file_sizes_list", $wrapper).length > 1)
$(this).parent(".file_sizes_list").remove();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<div class="file_size">
<div class="file_sizes">
<div class="file_sizes_list">
<input id="name_file" type="text" name="name[]" >
<select name="type_item[]" id="type_item">
<option value="1">Первый пункт</option>
<option value="2">Второй пункт</option>
<option value="3">Третий пункт</option>
<option value="4">Четвертый пункт</option>
</select>
<input id="num_material" type="text" name="input[]" style="display:none">
<button type="button" class="remove-field">x</button>
<button type="button" class="add-field">Добавить поле</button>
</div>
</div>
</div>
Ответы (1 шт):
Автор решения: Дима Нпц
→ Ссылка
У вас ошибка в том, что добавленные поля имеют такой же name и id, как и первое поле. Попробуйте реализовать так, чтобы, к примеру, id имел вид id="name_file_1" и каждый последующий имел другой номер: name_file_2, name_file_3 и т.д.