javascript - jQuery Datepicker - 将第一个选择器设置为限制为第二个选择器的事件周

标签 javascript jquery date jquery-ui datepicker

两个日期选择器,工作人员要在日期选择器 1 (#from) 中输入工作日,然后在 (#to) 中输入第二个日期。相对于日期 1,日期 2 必须始终在未来。不允许周末。

此 fiddle 中提供了此工作示例,不包括周末,并且不允许日期 2 中的过去日期:

https://jsfiddle.net/gLrumpo3/6/

<input id="from">
<input id="to"> 

$("#from").datepicker({
    defaultDate: new Date(),
    minDate: new Date(),
    beforeShowDay: $.datepicker.noWeekends,
    onSelect: function(dateStr)
    {
        $("#to").val(dateStr);
        $("#to").datepicker("option",{ minDate: new Date(dateStr)})
    }
  });

$('#to').datepicker({
   defaultDate: new Date(),
   beforeShowDay: $.datepicker.noWeekends,
   onSelect: function(dateStr) {
     toDate = new Date(dateStr);
     fromDate = ConvertDateToShortDateString(fromDate);
     toDate = ConvertDateToShortDateString(toDate);
   }
 });

但我现在需要的是能够将输入的第二个日期“锁定”到与第一个日期相同的星期,我考虑过使用 maxDate,但我只能指定一个任意偏移量,例如 Xdays,或者具体日期。这不太好,因为人们可能会选择星期四,例如,我不能再添加 4 天并将其设置为最大日期,因为他们可以选择下周的星期一。

那么我如何才能将他们的日期限制在一周内,而该周是在第一个字段中选择的那一天设置的。

如果可能,请使用有效答案更新 fiddle 。谢谢。

最佳答案

试试这个代码

var date = $(this).datepicker('getDate');
endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 6);
$( "#to" ).datepicker("option",{minDate: new Date(dateStr), maxDate:endDate});

您可以为 $( "#to") 日期选择器将 maxDate 设置为该周的最后一个日期。

$("#from").datepicker({
  defaultDate: new Date(),
  minDate: new Date(),
  beforeShowDay: $.datepicker.noWeekends,
  onSelect: function(dateStr)
  {
      $("#to").val(dateStr);
      var date = $(this).datepicker('getDate');
         endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 6);
      $( "#to" ).datepicker("option",{minDate: new Date(dateStr), maxDate:endDate});
      
  }
});

$('#to').datepicker({
  defaultDate: new Date(),
  beforeShowDay: $.datepicker.noWeekends,
  onSelect: function(dateStr) {
    toDate = new Date(dateStr);
    //fromDate = ConvertDateToShortDateString(fromDate);
    //toDate = ConvertDateToShortDateString(toDate);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<input id="from">
<input id="to">

关于javascript - jQuery Datepicker - 将第一个选择器设置为限制为第二个选择器的事件周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46026263/

相关文章:

php - 谷歌地图 jquery 插件,带有 json、php、mysql 覆盖标记

php - 从数据库中获取关键字和描述是否可以?

javascript - Jquery Resize对象在窗口调整大小并保持纵横比

javascript - 删除输入文本的 Chrome 样式(列表)

javascript - Firefox 像拖动图像一样拖动 div

python - 尝试将日期和时间附加到文件名

java - 在 java 中将 RFC3339 DateTime 转换为 Date

java - 从时间戳字段中获取特定日期的记录

javascript - 尝试在我的第一个 react 网站上建立一个基本的搜索栏

javascript - Ionic 3 + Firebase Storage 获取个人资料图片