我注意到Bootstrap datepicker發生意外的事件觸發。它只發生在另一個函數/處理程序內部。Bootstrap datepicker意外地觸發另一個事件處理程序內的更改事件
通常setDate
不應該觸發事件,它不會!除非我將它包裝到另一個函數/處理程序中。試圖瞭解差異並擺脫不必要的事件觸發。
請幫忙。
//$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('setDate', startDate);
//}); When commented, change event doesn't fire, when uncommented - unexpected change event fires.
https://jsfiddle.net/xek22wpq/
使用change
或changeDate
沒有任何區別。
$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('setDate', startDate);
});
$(document).on('change', '.start .date', function() {
alert('fired!');
});
<link href="https://rawgit.com/uxsolutions/bootstrap-datepicker/master/dist/css/bootstrap-datepicker.standalone.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://rawgit.com/uxsolutions/bootstrap-datepicker/master/dist/js/bootstrap-datepicker.min.js"></script>
<button class='set-date-button'>Set Date</button>
<div class='start'>
<input class='date' placeholder='mm/dd/yyyy'>
</div>
請注意,您鏈接[eonasdan-的DateTimePicker(https://eonasdan.github.io/bootstrap-datetimepicker/)文檔,而在你的小提琴和你正在使用的[bootstrap-datepicker](https://bootstrap-datepicker.readthedocs.io/en/latest/index.html)的片段中。第一個組件既沒有'datepicker'也沒有'setDate'方法。小提琴和片段都不起作用。請編輯您的問題,指定您正在使用的組件。 – VincenzoC
錯誤的鏈接,已修復。 –