Моя проблема в том, что мой datepicker не работает, когда я создаю поле ввода через javascript.
У меня есть кнопка, которая будет генерировать поля, необходимые для ввода. Один из них - датапикер. У меня есть функция, которая вызывает небольшой календарь, из которого пользователь может выбирать. Он работает для полей ввода, которые не создаются функцией javascript.
это функция javascript для создания поля ввода:
<script lang = "javascript">
TestNo = 1; // This is input files added by default.
TestMax = 50;
TestMin = 1;
function Test_Addchild() {
if (TestNo <= TestMax) {
var div = document.createElement("div");
div.id = 'divfiles' + TestNo;
//div.style.width = "100px";
//div.style.height = "100px";
//div.style.background = "red";
//div.style.color = "white";
div.innerHTML = '<input size = "35" type = "text" id = "Test' + TestNo + 'D" name = "Test' + TestNo + 'D" value = "Date ' + TestNo + '" class = "form-control selector" autocomplete = "off">';
document.getElementById('Tests').appendChild(div);
TestNo++;
$('#<%= NoOfTests.ClientID %>').val(TestNo-1);
return false;
}
else {
alert('Maximum ' + TestMax + ' Files are Allowed.');
return false;
}
}
function Test_Delchild() {
if (TestNo > TestMin) {
cnt = TestNo - 1;
element = document.getElementById('divfiles' + cnt);
element.parentNode.removeChild(element);
TestNo--;
$('#<%= NoOfTests.ClientID %>').val(TestNo-1);
return false;
}
else {
alert('All tests removed');
return false;
}
}
</script>
Это кнопки, создающие и удаляющие поле ввода:
<a href = "javascript:void();" onclick = "Test_Addchild()">Add more tests</a><br>
<a href = "javascript:void();" onclick = "Test_Delchild()">Remove tests</a><br>
И, наконец, функция datepicker
<script>
$(function () {
$(".selector").datepicker({
showOtherMonths: true,
selectOtherMonths: true
});
});
</script>
Как заставить функцию datepicker работать для динамически создаваемых полей ввода?
Заранее спасибо.
Попробуйте делегировать обработчик телу, а не напрямую селектору. Документы должны иметь правильный синтаксис.
Попробуйте изменить свой type = "text" на type = "date". Это должно сделать элемент управления датпикером.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, вы столкнулись с этой проблемой, потому что ваша функция активации
datepickerработает раньше той, которая добавляет поля.