Вы можете использовать onSelect
событие DatePicker .
$(".date").datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
});
Живой пример :
$(".date")
.datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
}
})
.on("change", function() {
console.log("Got change event from field");
});
<link href="http://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<input type='text' class='date'>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
К сожалению, onSelect
срабатывает каждый раз , когда выбрана дата, даже если она не изменилась. Это недостаток дизайна в средстве выбора даты: он всегда срабатывает onSelect
(даже если ничего не изменилось) и не генерирует никаких событий в базовом вводе при изменении. (Если вы посмотрите код этого примера, мы выслушиваем изменения, но они не вызываются.) Вероятно, при возникновении изменений должно возникать событие на входе (возможно, обычное change
событие или, возможно, средство выбора даты). конкретный).
Если вам нравится, конечно, вы можете устроить change
мероприятие на input
костре:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
Это сработает change
в основе input
для любого обработчика, подключенного через jQuery. Но опять же, это всегда срабатывает. Если вы хотите использовать только реальные изменения, вам нужно сохранить предыдущее значение (возможно, через data
) и сравнить.
Живой пример :
$(".date")
.datepicker({
onSelect: function(dateText) {
console.log("Selected date: " + dateText + "; input's current value: " + this.value);
$(this).change();
}
})
.on("change", function() {
console.log("Got change event from field");
});
<link href="http://code.jquery.com/ui/1.9.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<input type='text' class='date'>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>