嗨,我一直试图获得一个引导日期选择器的日期,并一直能够,但它似乎触发了3次。注意:这不是jquery日期选择器,而是引导日期选择器。
使用这个日期选择器:https://github.com/eternicode/bootstrap-datepicker,而不是旧版的eyecon.ro。
$(".date-picker").on("change", function(e) {
contents = $(this).val();
id = $(this).attr('id');
console.log("onchange contents: " + contents);
console.log("onchange id: " + id);
});
HTML:
<input id="start_date" type="text" data-date-format="yyyy-mm-dd" class="date-picker form-control" />
除了更改之外,我还使用了其他一些选项,例如
$('.date-picker').datepicker().change(function(){};
但这并没有关闭日期选择器,希望有一个简单的解决方案。thx
发布于 2014-07-28 12:28:23
它没有解决这个问题,但我是使用datepicker通过ajax post发送的,所以这3个更改事件给我带来了问题-第三个事件总是失败。即使文档中说要使用changeDate事件,但在我看来,触发输入标记的change事件3次似乎是不对的。该值不会改变3次!
我写了一个简单的“去抖动”函数来解决这个问题。没有修复这个问题-这是由于小部件的方法: setValue (508行)、_setDate:(1048行)和setValue (508行) (version 1.3.0)触发了多个更改事件。
var lastJQueryTS = 0 ;// this is a global variable.
....
// in the change event handler...
var send = true;
if (typeof(event) == 'object'){
if (event.timeStamp - lastJQueryTS < 300){
send = false;
}
lastJQueryTS = event.timeStamp;
}
if (send){
post_values(this);
}
它非常简单,只需找到jquery 'event',并确保300ms窗口中的值被忽略即可。在我的测试中,这一切都发生在30毫秒左右。
发布于 2014-03-24 15:53:06
您应该使用"changeDate“事件。例如:
var datePicker = $('.date-picker').datePicker().on('changeDate', function(ev) {
//Functionality to be called whenever the date is changed
});
有关此活动的更多信息,请查看文档here。
发布于 2016-06-17 19:55:41
正如一些人已经提到的,使用这个:
$('#calendar').on("changeDate", function() {
});
诀窍是使用changeDate
而不是change
。
https://stackoverflow.com/questions/22614041
复制相似问题