您可以使用datepicker的onSelect event .
$(".date").datepicker({
onSelect: function(dateText) {
display("Selected date: " + dateText + "; input's current value: " + this.value);
}
});
Live example :
jQuery(function($) {
$(".date").datepicker({
onSelect: function(dateText) {
display("Selected date: " + dateText + "; input's current value: " + this.value);
}
}).on("change", function() {
display("Got change event from field");
});
function display(msg) {
$("
").html(msg).appendTo(document.body);
}
});
不幸的是,只要选择了日期, onSelect 就会触发,即使它没有改变 . 这是datepicker中的一个设计缺陷:它始终触发 onSelect (即使没有任何更改),并且在更改时不会触发基础输入上的任何事件 . (如果查看该示例的代码,我们将被引发 . )当事情发生变化时,它可能应该在输入上触发事件(可能是通常的 change 事件,或者可能是特定于日期选择器的事件) .
如果您愿意,当然,您可以在 input 火上制作 change 事件:
$(".date").datepicker({
onSelect: function() {
$(this).change();
}
});
对于通过jQuery连接的任何处理程序,这将触发基础 input 上的 change . 但同样,它总是触发它 . 如果您只想触发真正的更改,则必须保存以前的值(可能通过 data )并进行比较 .
Live example :
jQuery(function($) {
$(".date").datepicker({
onSelect: function(dateText) {
display("Selected date: " + dateText + "; input's current value: " + this.value);
$(this).change();
}
}).on("change", function() {
display("Got change event from field");
});
function display(msg) {
$("
").html(msg).appendTo(document.body);
}
});