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

无法从Bootstrap-datetimepicker获取选中日期值的技术求助

解决日期选择器关闭后无法获取选中值的问题

看起来你遇到的核心问题是第三方日期选择器(从你的HTML结构判断大概率是Bootstrap Datepicker)不会触发原生的change/input等表单事件——这类组件是通过JS主动设置输入框的值,而非用户手动输入或原生交互触发事件,所以你之前绑定的那些原生事件自然不会生效。

问题根源

你用的日期选择器依赖自定义逻辑渲染日历、设置输入框值,它不会触发浏览器原生的表单事件,而是提供了专属的自定义事件来通知日期选中的变化。

正确的解决方案

你需要绑定日期选择器容器的changeDate事件(Bootstrap Datepicker的自定义事件),而不是直接绑定输入框的事件:

// 绑定日期选择器的changeDate事件(选中日期时触发)
$('#start_picker').on('changeDate', function(e) {
  // 获取和输入框显示一致的格式化日期值
  var selectedDate = $(this).datepicker('getFormattedDate');
  console.log('选中的日期:', selectedDate);
  
  // 在这里执行你的表格过滤逻辑
  filterTableByDate(selectedDate);
});

// 可选:如果需要在日历关闭时也触发逻辑,可以额外绑定hide事件
$('#start_picker').on('hide', function(e) {
  var selectedDate = $(this).datepicker('getFormattedDate');
  console.log('日历关闭时的日期:', selectedDate);
});

为什么之前的事件无效?

  • 原生change事件只有在用户手动修改输入框内容并失去焦点时才会触发,日期选择器是通过JS直接修改value属性,不会触发这个事件。
  • click事件仅在你点击输入框打开日历的瞬间触发,和日期选中的动作完全无关,所以只有首次点击时能生效。

额外提示

如果你用的是其他类型的日期选择器(比如jQuery UI Datepicker),对应的事件会有所不同,示例如下:

$('#startDate').datepicker({
  onSelect: function(dateText) {
    console.log('选中的日期:', dateText);
  }
});

但从你的HTML结构来看,Bootstrap Datepicker的适配性最高,优先尝试第一种方案即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:30:35