У меня есть 2 datepickers
на моей странице, и я хочу иметь 1 год между ними. До сих пор, когда один из них менялся, я проверяю одно значение другого и обновляю его.JQuery onChangeDate дата изменения события вручную
$("#DateFrom").datepicker().on("changeDate", function() {
var dt = new Date($(this).val());
dt.setFullYear(dt.getFullYear() + 1)
var updateDate = new Date(dt);
var dateFrom =$(this).val();
var dateTo = $("#DateTo").val();
if (new Date(dateFrom).getTime() > new Date(dateTo).getTime())
$('#DateTo').val('');
if (new Date(dateTo).getTime() > new Date(updateDate).getTime())
$('#DateTo').datepicker('setDate', updateDate);
});
$("#DateTo").datepicker().on("changeDate", function (e) {
var dt = new Date($(this).val());
dt.setFullYear(dt.getFullYear() - 1)
var updateDate = new Date(dt);
var dateTo = $(this).val();
var dateFrom = $("#DateFrom").val();
if (new Date(dateFrom).getTime() > new Date(dateTo).getTime()) {
$('#DateFrom').val('');
}
if (new Date(dateFrom).getTime() < new Date(updateDate).getTime()) {
$('#DateFrom').datepicker('setDate', updateDate);
}
});
Он отлично работает, если вы выбираете дату из datepicker
, но если вы пытаетесь ввести его вручную огни событий всякий раз, когда вы печатаете что-то и он вычисляет неправильную дату.
Например, если #DateFrom
значения является 01/01/2016
и я изменить его вручную '01/01/2015'
, когда я удалить 5 будет проходить мероприятие текущую дату как 01/01/201
и рассчитает updateDate в 01/01/202
.
Есть ли способ вызвать событие после того, как пользователь завершит ввод?
Заранее спасибо.
Является ли это пользовательским интерфейсом jquery или загрузчиком даты? –
@ GilleQ. это bootstrap-datepicker ... Я добавил соответствующий тег и – Kostis