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

如何用jQuery和JavaScript统计Bootstrap多日期选择器的选中日期数

解决Bootstrap Datepicker多选日期时统计选中天数的问题
  • 你的问题根源有两个:

    1. 用val()获取的是逗号拼接的日期字符串,直接取length得到的是字符总数,不是选中的日期数量;
    2. 原生change事件无法同步组件内部的最新选中状态,容易拿到历史残留值。
  • 正确的处理方式是用Bootstrap Datepicker自带的API和事件:

    1. 改用组件专属的changeDate事件(这是组件为日期变更专门触发的事件,比原生change更精准);
    2. 调用datepicker('getDates')方法,直接获取选中的日期对象数组,数组长度就是选中天数。

修改后的代码:

$(document).on('changeDate', '#leavedate', function(e) {
    // 获取选中的日期数组
    const selectedDates = $('#leavedate').datepicker('getDates');
    // 数组长度即为选中天数
    const dayCount = selectedDates.length;
    alert(dayCount);
});
  • 如果非要通过处理val()实现(不推荐,易出异常),可以这样写:
$(document).on('changeDate', '#leavedate', function(e) {
    const dateStr = $('#leavedate').val();
    // 空值时返回0,否则按逗号分割后取数组长度
    const dayCount = dateStr ? dateStr.split(',').length : 0;
    alert(dayCount);
});

注意:优先用getDates()方法,它直接读取组件内部维护的选中状态,不会因为手动输入字符串、格式异常等情况出错,稳定性更高。

内容的提问来源于stack exchange,提问作者Megumin the Explosion

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:40:33