Ви можете використовувати onSelect
подію датника .
$(".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>