You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

apply.daterangepicker事件失效求助:点击应用按钮无法触发函数

解决daterangepicker的apply.daterangepicker事件失效问题

嘿,我来帮你搞定这个问题~你是不是遇到了点击daterangepicker的「应用」按钮时,绑定的apply.daterangepicker事件完全没反应的情况?别急,咱们先看看你的代码情况:

你的现有代码

HTML代码:

<input type="text" class="form-control date-picker" id="duration" name="daterange" >

JS代码:

$(function () { 
  $('input[name="daterange"]').daterangepicker({ 
    "showWeekNumbers": true, 
  }); 
}); 
$('#duration').on('apply.daterangepicker', function (ev, picker) { 
  alert('apply clicked!'); 
}); 

问题出在哪?

核心问题是事件绑定的时机不对!你把apply.daterangepicker的事件绑定代码放在了$(function(){})外面,而$(function(){})是DOM完全就绪后才会执行的代码块——也就是说,当你的事件绑定代码运行时,daterangepicker还没完成初始化呢,自然监听不到这个专属事件。

两种解决办法

方法一:把事件绑定和初始化放在一起

直接在daterangepicker初始化后链式绑定事件,确保绑定动作在插件初始化完成后执行:

$(function () { 
  $('input[name="daterange"]').daterangepicker({ 
    "showWeekNumbers": true, 
  }).on('apply.daterangepicker', function (ev, picker) { 
    alert('apply clicked!'); 
    // 这里可以添加你需要执行的其他逻辑
  }); 
}); 

方法二:使用事件委托(适合动态生成的元素)

如果你的日期选择器是动态添加到页面中的,或者想更灵活,可以用事件委托的方式,把事件绑定到父级(甚至document)上:

$(function () { 
  $('input[name="daterange"]').daterangepicker({ 
    "showWeekNumbers": true, 
  }); 

  // 委托给document监听事件
  $(document).on('apply.daterangepicker', '#duration', function (ev, picker) { 
    alert('apply clicked!'); 
  }); 
}); 

这样修改后,再点击「应用」按钮,就能正常触发你想要的函数啦~

内容的提问来源于stack exchange,提问作者Kaushik Nandwana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:51:31