如何阻止jQuery UI内联式Datepicker自动选中今日日期
解决内联jQuery UI Datepicker自动选中今日的问题
针对内联式(绑定到div/span)的jQuery UI Datepicker自动选中今日并填充输入框的问题,这里有几个比beforeShow清空更规范的解决方案:
方法1:使用setDate(null)清除选中状态
初始化完成后,直接调用官方支持的setDate(null)方法,这会同时清除日历上的选中状态和关联输入框的值,完美匹配你的需求:
// 初始化内联datepicker const $calendar = $('#calendar').datepicker({ // 你的其他配置项,比如dateFormat、minDate等 }); // 清除默认选中的今日日期 $calendar.datepicker('setDate', null);
这个方法完全遵循组件的API规范,不会像手动清空输入框那样引发潜在的事件冲突或状态不一致问题。
方法2:初始化后手动调整选中状态(兼容旧版本)
如果你的项目使用了较旧版本的jQuery UI,setDate(null)可能存在兼容问题,可以直接操作DOM移除今日的选中样式,再清空关联输入框:
$('#calendar').datepicker({ // 你的配置项 }).find('.ui-datepicker-today a').removeClass('ui-state-active'); // 清空关联的输入框 $('#your-input-id').val('');
这个方法更直接,针对日历控件的DOM结构进行调整,适合需要精细控制的场景。
需要注意:这两个方法仅针对内联式Datepicker有效,绑定到input的弹窗式Datepicker本身不会自动选中今日,无需额外处理。
内容的提问来源于stack exchange,提问作者cincplug
相关产品推荐
相关产品推荐

