Эта проблема требует длинного объяснения.Я использую следующий код, чтобы позволить пользователю добавлять / удалять строки в пользовательском интерфейсе:
$(document).ready(function(){
//group add limit
var maxGroup = 12;
//add more fields group
$(".addMore").click(function(){
if($('body').find('.fieldGroup').length < maxGroup){
var fieldHTML = '<div class="form-group fieldGroup">'+$(".fieldGroupCopy").html()+'</div>';
$('body').find('.fieldGroup:last').after(fieldHTML);
}else{
alert('Maximum '+maxGroup+' groups are allowed.');
}
});
//remove fields group
$("body").on("click",".remove",function(){
$(this).parents(".fieldGroup").remove();
});
});
Начальные поля ввода, которые изначально видны, находятся в одной части страницы:
<div class="form-group fieldGroup">
<div class="input-group">
<!--INPUT FIELDS GO HERE--!>
</div>
</div>
... и «копии», которые появляются, когда пользователь добавляет «строку» в пользовательский интерфейс, находятся в другом:
<div class="form-group fieldGroupCopy" style="display: none;">
<div class="input-group">
<!--COPIED INPUT FIELDS GO HERE--!>
</div>
</div>
Все это содержится в одном form
,следующим образом:
<form method="post" action="add-event_submit.php">
<!--fieldGroup AND fieldGroupCopy elements--!>
</form>
По большей части это работает просто отлично.Тем не менее, в каждой строке у меня есть datepicker
.
начальный указатель даты выглядит следующим образом:
<input type="text" name="date[]" id="datepicker1" value="DATE" style="width:102px; text-align:center" date-format="dd-mm-yyyy"></input>
Средство выбора даты, которое будет показано в последующемrow is:
<input type="text" name="date[]" id="datepicker2" value="DATE" style="width:102px; text-align:center" date-format="dd-mm-yyyy"></input>
Таким образом, функция show / hide, кажется, вызывает все виды проблем с средством выбора даты.Например, style="display: none;
в fieldGroupCopy
останавливает показ второго и всех последующих сборщиков дат.Поле ввода есть, но нажатие на него ничего не делает, поскольку всплывающее окно datepicker
остается скрытым.
Поэтому я надеялся, что код jquery можно изменить, чтобы исправить это.