如何使用日期选择器将下周除外设置为禁用

How to set disabled except next week using datepicker

我正在使用日期选择器jquery。我想添加一个启用或禁用设置,以便我只能 select 下周基于今天。找了几天也没找到我要的功能,只好post求教了。谢谢。

<script src="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.12.1/jquery-ui.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css"></script>

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Restrict date range</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    var today = new Date();
    var next_week = new Date();
    next_week.setDate(today.getDate()+(7-today.getDay()));
    var next_weekend = new Date();
    next_weekend.setDate(next_week.getDate()+6);
    $( "#datepicker" ).datepicker({ minDate: next_week, maxDate: next_weekend });
  } );
  
  // For specific Dates
  /* $( function() {
    var today = new Date("09/15/2021");
    var next_week = new Date("09/15/2021");
    next_week.setDate(today.getDate()+(7-today.getDay()));
    var next_weekend = new Date("09/15/2021");
    next_weekend.setDate(next_week.getDate()+6);
    $( "#datepicker" ).datepicker({ minDate: next_week, maxDate: next_weekend });
  } ); */
  </script>
</head>
<body>
 
<p>Date: <input type="text" id="datepicker"></p>
 
 
</body>
</html>

您可以使用min-max设置星期如下:

$( function() {
    var today = new Date();
    var next_week = new Date();
    next_week.setDate(today.getDate()+(7-today.getDay()));
    var next_weekend = new Date();
    next_weekend.setDate(next_week.getDate()+6);
    $( "#datepicker" ).datepicker({ minDate: next_week, maxDate: next_weekend });
  } );

此外,您还可以针对特定日期更新相同的函数,如下所示:

$( function() {
    var today = new Date("09/15/2021");
    var next_week = new Date("09/15/2021");
    next_week.setDate(today.getDate()+(7-today.getDay()));
    var next_weekend = new Date("09/15/2021");
    next_weekend.setDate(next_week.getDate()+6);
    $( "#datepicker" ).datepicker({ minDate: next_week, maxDate: next_weekend });
  } );

或者,如果您想使用日期范围,则以下代码段适用于日期范围。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Select a Date Range</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
  var today = new Date();
    var next_week = new Date();
    next_week.setDate(today.getDate()+(7-today.getDay()));
    var next_weekend = new Date();
    next_weekend.setDate(next_week.getDate()+6);
    var dateFormat = "mm/dd/yy",
      from = $( "#from" )
        .datepicker({
         minDate: next_week, 
         maxDate: next_weekend
        })
        .on( "change", function() {
          to.datepicker( "option", "minDate", getDate( this ) );
        }),
      to = $( "#to" ).datepicker({
        minDate: next_week, 
        maxDate: next_weekend
      })
      .on( "change", function() {
        from.datepicker( "option", "maxDate", getDate( this ) );
      });
 
    function getDate( element ) {
      var date;
      try {
        date = $.datepicker.parseDate( dateFormat, element.value );
      } catch( error ) {
        date = null;
      }
 
      return date;
    }
  } );
  </script>
</head>
<body>
 
<label for="from">From</label>
<input type="text" id="from" name="from">
<label for="to">to</label>
<input type="text" id="to" name="to">
 
 
</body>
</html>

供参考JQuery Datepicker