我有一个JS代码,当你改变一个字段,它调用搜索例程。问题是,当Datepicker更新输入字段时,我找不到任何将触发的jQuery事件。

由于某种原因,当Datepicker更新字段时,没有调用更改事件。当日历弹出时,它会改变焦点,所以我也不能使用它。什么好主意吗?


当前回答

T.J.克劳德(T.J. Crowder)的答案(https://stackoverflow.com/a/6471992/481154)非常好,而且仍然很准确。在onSelect函数中触发更改事件是最接近的方法。

然而,在datepicker对象(lastVal)上有一个很好的属性,它允许你只在实际更改时有条件地触发更改事件,而不必自己存储值:

$('#dateInput').datepicker({
     onSelect: function(d,i){
          if(d !== i.lastVal){
              $(this).change();
          }
     }
});

然后像往常一样处理更改事件:

$('#dateInput').change(function(){
     //Change code!
});

其他回答

我的解决方案是:

events: {
    'apply.daterangepicker #selector': 'function'
}

试试这个

$('#dateInput').datepicker({
 onSelect: function(){
       $(this).trigger('change');
      }
 }});

希望这对你有所帮助。

T.J.克劳德(T.J. Crowder)的答案(https://stackoverflow.com/a/6471992/481154)非常好,而且仍然很准确。在onSelect函数中触发更改事件是最接近的方法。

然而,在datepicker对象(lastVal)上有一个很好的属性,它允许你只在实际更改时有条件地触发更改事件,而不必自己存储值:

$('#dateInput').datepicker({
     onSelect: function(d,i){
          if(d !== i.lastVal){
              $(this).change();
          }
     }
});

然后像往常一样处理更改事件:

$('#dateInput').change(function(){
     //Change code!
});

您可以使用datepicker的onClose选项,并将更改代码放在其中。当datepicker模式关闭时触发。我试图触发变化事件,但这不会工作,所以我把我的代码内的onClose代替,它工作。同样的方法也适用于onSelect,如果你需要在选择日期时触发。

$('#el').datepicker({ 
   onClose: function () {
     // code here
   }
});

日期选择选项https://api.jqueryui.com/datepicker/

我正在使用bootstrap-datepicker,上面的解决方案都不适合我。这个回答帮助了我。

当手动编辑日期或清除日期时,引导datepicker更改日期事件不会触发

这是我申请的:

 $('.date-picker').datepicker({
     endDate: new Date(),
     autoclose: true,
 }).on('changeDate', function(ev){
        //my work here
    });

希望这能帮助到其他人。