我有两个日期fromDateToDate,我想在其中实现一个逻辑,如果在

FromDate是 Select 今天的日期,到目前为止,该日期应在前90天或3个月之前处于活动或启用状态.同时,两个文本框中的最大日期都应为当前日期

以下是我try 过的代码

$(function() {
  $("#fromDate").datepicker({ //
    dateFormat: 'dd/mm/yy',
    changeMonth: true,
    changeYear: true,
    maxDate: "+90y",
    defaultDate: null
  }).datepicker("setDate", new Date());
  
  $("#toDate").datepicker({
    dateFormat: 'dd/mm/yy',
    changeMonth: true,
    changeYear: true,
    defaultDate: null,
    maxDate: 0,
    onSelect: function() {
      //$('#fromDate').datepicker('option', 'minDate', $("#toDate").datepicker("getDate"));
    }
  }).datepicker("setDate", new Date());
});
<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">

推荐答案

根据要求和try 代码中的措辞:

to日期更改时,将from日期限制为to日期之前的90天

这次try 很接近,只需减go 天数(如用this answer)

    onSelect: function() {
        let d = $("#toDate").datepicker("getDate");
      d.setDate(d.getDate() - 90);
      $('#fromDate').datepicker('option', 'minDate', d);
    }

更新了代码片段,使用了3天,因此测试更容易:

$(function() {
  $("#fromDate").datepicker({ //
    dateFormat: 'dd/mm/yy',
    changeMonth: true,
    changeYear: true,
    maxDate: "+0",
    defaultDate: null
  }).datepicker("setDate", new Date());
  
  $("#toDate").datepicker({
    dateFormat: 'dd/mm/yy',
    changeMonth: true,
    changeYear: true,
    defaultDate: null,
    maxDate: 0,
    onSelect: function() {
        let d = $("#toDate").datepicker("getDate");
      d.setDate(d.getDate() - 3);
      $('#fromDate').datepicker('option', 'minDate', d);
    }
  }).datepicker("setDate", new Date());
});
<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">

Jquery相关问答推荐

如何在 bootstrap 模式关闭并重新打开时重置 bootstrap 模式?

如何判断是否有任何 JavaScript 事件侦听器/处理程序附加到元素/文档?

以ajax方式在rails 3中提交表单(使用jQuery)

如何使用 jQuery go 除 HTML 标签?

不使用插件的 jQuery 缓动函数

未捕获的类型错误:$.post 不是函数

javascript中的描述关键字

根据弹出框相对于窗口边缘的 X 位置更改 Bootstrap 弹出框的位置?

如何使用 jQuery 更改文本

获取元素的底部和右侧位置

测试两个元素是否相同

jquery: $(window).scrollTop() 但没有 $(window).scrollBottom()

CSS3 相当于 jQuery slideUp 和 slideDown?

如何将参数传递给 jQuery 中的事件处理程序?

你如何使用 jquery 淡入/淡出背景 colored颜色 ?

如何在jQuery中 Select 最后一个子元素?

带有 LIKE 的 Spring JPA @Query

在 Firefox 上开发的 Javascript 在 IE 上失败的典型原因是什么?

.success() 和 .complete() 之间的区别?

jQuery:通过 .attr() 添加两个属性;方法