我有一个输入元素与附加的日期选择器创建使用
bootstrap-datepicker。
<div class="well"> <div class="input-append date" id="dp3" data-date="2012-01-02" data-date-format="yyyy-mm-dd"> <input type="text" id="date-daily"> <span class="add-on"><i class="icon-th"></i></span> </div> </div> <script language="JavaScript" type="text/javascript"> $(document).ready(function() { $('#dp3').datepicker(); $('#date-daily').val('0000-00-00'); $('#date-daily').change(function () { console.log($('#date-daily').val()); }); }); </script>
当用户通过直接键入输入元素来更改日期时,我可以使用输入元素的onChange事件获取值,如上所示。但是当用户从datepicker更改日期(即通过单击日历上的日期)时,不会调用onChange处理程序。
如何检测通过日期选择器对所选日期所做的更改,而不是通过键入输入元素?
解决方法
所有其他的答案都与jQuery UI datepicker相关,但问题是关于bootstrap-datepicker。
您可以使用on changeDate
事件在相关输入上触发更改事件,然后处理从onChange处理程序更改日期的两种方法:
changeDate
Fired when the date is changed.
例:
$('#dp3').datepicker().on('changeDate',function (ev) { $('#date-daily').change(); }); $('#date-daily').val('0000-00-00'); $('#date-daily').change(function () { console.log($('#date-daily').val()); });
这里是一个工作的小提琴:http://jsfiddle.net/IrvinDominin/cUhQJ/