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

求助:jQuery Datepicker未实现指定日期范围限制逻辑

日期选择框限制逻辑实现方案

要实现你描述的需求,需要调整jQuery UI Datepicker的配置,核心是给fromDate添加日期选择后的触发逻辑,动态修改toDate的可选范围,同时修正两个输入框的最大可选日期限制:

核心修改点

  • 给fromDate设置maxDate: 0,确保它的最大可选日期为当前日期
  • 为fromDate添加onSelect事件,判断选中日期是否为当日:
    • 如果是当日,将toDate的最小可选日期设为当前日期往前90天
    • 如果不是当日,移除toDate的最小日期限制(可根据实际需求调整)
  • 保持toDate的maxDate: 0,确保它的最大可选日期始终为当前日期

完整代码

HTML部分

<link href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>

<input id="fromDate" type="text" value="16/02/2024">
<input id="toDate" type="text" value="16/02/2024">

JavaScript部分

$(function() {
  // 初始化fromDate日期选择器
  $("#fromDate").datepicker({
    dateFormat: 'dd/mm/yy',
    changeMonth: true,
    changeYear: true,
    maxDate: 0, // 最大可选日期为当前日期
    defaultDate: null,
    onSelect: function(selectedDate) {
      var selected = $(this).datepicker('getDate');
      var today = new Date();
      // 去除时间部分,仅比较日期
      today.setHours(0, 0, 0, 0);
      selected.setHours(0, 0, 0, 0);
      
      if (selected.getTime() === today.getTime()) {
        // 选中当日时,设置toDate的最小日期为往前90天
        $("#toDate").datepicker('option', 'minDate', '-90d');
      } else {
        // 非当日时,移除toDate的最小日期限制
        $("#toDate").datepicker('option', 'minDate', null);
      }
    }
  }).datepicker("setDate", new Date());
  
  // 初始化toDate日期选择器
  $("#toDate").datepicker({
    dateFormat: 'dd/mm/yy',
    changeMonth: true,
    changeYear: true,
    defaultDate: null,
    maxDate: 0, // 最大可选日期为当前日期
    minDate: '-90d' // 初始默认最小日期(因为fromDate默认选中当日)
  }).datepicker("setDate", new Date());
});

说明

  • 日期比较时去除了时间部分,避免因时分秒不同导致判断错误
  • 初始状态下fromDate选中当日,因此toDate默认限制在近90天内
  • 当fromDate切换到非当日日期时,toDate恢复无最小日期限制(可根据实际需求调整这部分逻辑)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:32:50