$( ".datepicker" ).datepicker({
beforeShow: function( el ){
// set the current value before showing the widget
$(this).data('previous', $(el).val() );
},
onSelect: function( newText ){
// compare the new value to the previous one
if( $(this).data('previous') != newText ){
// do whatever has to be done, e.g. log it to console
console.log( 'changed to: ' + newText );
}
}
});
14 回答
您可以使用datepicker的onSelect event .
Live example :
不幸的是,只要选择了日期,
onSelect
就会触发,即使它没有改变 . 这是datepicker中的一个设计缺陷:它始终触发onSelect
(即使没有任何更改),并且在更改时不会触发基础输入上的任何事件 . (如果查看该示例的代码,我们将被引发 . )当事情发生变化时,它可能应该在输入上触发事件(可能是通常的change
事件,或者可能是特定于日期选择器的事件) .如果您愿意,当然,您可以在
input
火上制作change
事件:对于通过jQuery连接的任何处理程序,这将触发基础
input
上的change
. 但同样,它总是触发它 . 如果您只想触发真正的更改,则必须保存以前的值(可能通过data
)并进行比较 .Live example :
T.J.克劳德的答案(https://stackoverflow.com/a/6471992/481154)非常好,仍然保持准确 . Triggering the change event within the onSelect function is as close as you're going to get.
但是,在datepicker对象(
lastVal
)上有一个很好的属性,它允许你 conditionally trigger the change event only on actual changes 而不必自己存储值:然后像正常一样处理更改事件:
您在datepicker对象中查找onSelect事件:
我写这个是因为我需要一个解决方案,只有在日期改变时触发事件 .
这是一个简单的解决方案 . 每次关闭对话框时,我们都会测试数据是否已更改 . 如果有,我们触发自定义事件并重置存储的值 .
现在我们可以为这个自定义事件挂钩处理程序......
我正在使用bootstrap-datepicker,以上解决方案都没有为我工作 . 这个答案对我有帮助..
bootstrap datepicker change date event doesnt fire up when manually editing dates or clearing date
这是我申请的内容:
希望这可以帮助别人 .
在jQueryUi 1.9上,我设法让它通过一个额外的数据值以及beforeShow和onSelect函数的组合来工作:
适合我:)
试试这个
希望这可以帮助:)
我知道这是一个老问题 . 但我无法得到jquery $(this).change()事件来正确触发onSelect . 所以我采用以下方法通过vanilla js触发更改事件 .
$('.date').datepicker({ showOn: 'focus', dateFormat: 'mm-dd-yy', changeMonth: true, changeYear: true, onSelect: function() { var event; if(typeof window.Event == "function"){ event = new Event('change'); this.dispatchEvent(event); } else { event = document.createEvent('HTMLEvents'); event.initEvent('change', false, false); this.dispatchEvent(event); } } });
手册说:
所以:
适合我 .
我的解决方案是:
events: { 'apply.daterangepicker #selector': 'function' }
试试:
DatePicker选择了值更改事件代码如下
如果您使用wdcalendar,这将帮助您
onReturn活动适合我
希望这个帮助