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

如何在选择Air Datepicker日期后启用禁用的selectpicker下拉框?

解决Air Datepicker选择日期后无法启用selectpicker的问题

看起来你遇到的核心问题是事件绑定方式不对,导致日期选择后的回调完全没触发,自然也无法启用时间下拉框。结合你用的Air Datepicker和Bootstrap Selectpicker,我给你两个可行的解决方案:

方案1:初始化Air Datepicker时使用onSelect回调

Air Datepicker的官方API里,日期选择后的回调是通过初始化配置里的onSelect参数实现的,而不是像jQuery UI Datepicker那样用datepicker("change", ...)的方式。同时,因为你用了selectpicker,移除disabled属性后必须刷新插件才能让界面生效。

修改后的JS代码:

// 先初始化datepicker,同时绑定选择事件
$("#date").datepicker({
  onSelect: function(formattedDate, date, inst) {
    alert("Test");
    // 移除disabled属性
    $("#time").removeAttr("disabled");
    // 刷新selectpicker,否则界面不会更新
    $("#time").selectpicker("refresh");
  }
});

方案2:监听input的change事件

Air Datepicker在用户选择日期后,会自动触发输入框的change事件,所以你也可以直接监听这个原生事件:

// 先初始化datepicker
$("#date").datepicker();

// 监听输入框的change事件
$("#date").on("change", function() {
  alert("Test");
  $("#time").removeAttr("disabled");
  $("#time").selectpicker("refresh");
});

为什么你的原代码不生效?

你用的$("#date").datepicker("change", function())是jQuery UI Datepicker的事件绑定语法,但你实际使用的是Air Datepicker,两个插件的API不一样,所以这个回调根本不会被触发,alert自然也弹不出来。

另外要注意:不管用哪种方式,修改selectpicker的disabled状态后,一定要调用selectpicker("refresh"),否则Bootstrap Selectpicker不会更新界面,就算属性移除了,下拉框还是显示禁用状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:25:58