$(document).ready(function() {
$("form").submit(function(e) {
e.preventDefault();
for (var i=1;i<=($("input[name=number]").val());i++) {
$("<label/>").attr({ class: 'label',id: 'lb'+i}).text(' Payment Date').appendTo("#pays");
$("<input/>").attr({ type: 'text', id: 'paymentNo-'+(i), class: 'date input', name: 'payD[]', required: 'true' }).appendTo("#pays");
}
$(".date").each(function() {
$(this).datepicker({
onSelect: function(date) {
$(this).parent().find(".date").datepicker({
defaultDate: date,
changeMonth: true,
changeYear: true
});
}
});
});
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
src = "https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
integrity = "sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU = "
crossorigin = "anonymous"></script>
<form>
<div id = "pays">
<label> How many? </label>
<input type = "text" name = "number" id = "pnumber">
<button type = "submit">Submit</button>
</div>
</form>Я создаю поля ввода динамически на основе пользовательского ввода и инициализирую на них средство выбора даты. Кроме того, я пытаюсь установить дату по умолчанию на ранее выбранную дату в динамически сгенерированном поле. Проблема в том, что если я инициализирую средство выбора даты с опцией, указанной в коде, дата по умолчанию не переходит к ранее выбранной дате, а к текущей дате, а также изменение месяцев и лет не работает. Но если я даю параметры после инициализации, например
$(this).parent().find(".date").datepicker('option', 'defaultDate', date);
все работает как хотелось.
Пожалуйста, кто-нибудь, дайте мне знать, почему datepicker работает таким образом.

... let me know why datepicker works this way.
Итак, ваш вопрос: Зачем работает ли он по-другому при передаче объекта, содержащего все параметры, которые мы хотели бы установить (фрагмент кода №1)или, передавая 3 аргумента, разделенные запятой (фрагмент кода №2).
Фрагмент кода №1:
$(element).datepicker({
onSelect: function(date) { // some function here },
defaultDate: date,
changeMonth: true,
changeYear: true
});
Фрагмент кода №2:
$(element).datepicker('option', 'defaultDate', date);
Разница: #1 — это инициализация экземпляра, а #2 — модификация определенного свойства существующего экземпляра.
Теперь я думаю, что «что такое экземпляр» - это вопрос, который выходит за рамки SO... Но я нашел интересное видео на YouTube, которое вы можете посмотреть здесь.
В Документация API для DatePicker перечислены все параметры, которые вы можете инициализировать, получить и установить. Там же перечислены методы, которые вы можете применить к экземпляру.
Извините, если я неправильно понял ваш вопрос в первый раз... Я отредактировал.
Ну, я не хочу отключать предыдущие даты только для поддержания порядка. Я пытаюсь сделать это только для удобства, чтобы мне не нужно было нажимать «Далее», чтобы перейти к ранее выбранной дате. Кроме того, ваш ответ не касается моего вопроса, почему средство выбора даты не использует параметры, указанные выше, в моем коде.