Jquery - Как установить дату до сегодняшнего дня не может быть выбран? - PullRequest
0 голосов
/ 24 октября 2019

Я могу сделать так, чтобы сегодняшняя дата появлялась в день заезда, но проблема в том, что пользователь все еще может выбрать дату до сегодняшней даты. Разве такое решение может позволить мне решить его проблему? Любое предложение будет большой помощью, спасибо!

$(function () {
        $("#chkI").datepicker({
            dateFormat: "yy-mm-dd", showAnim: "slideDown", 
            onClose: function (selectedDate) {
                var minDate = $(this).datepicker('getDate');
                var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
                $("#chkO").datepicker("option", "minDate", newMin);
            }
        });
        var currentDate = new Date();
        $("#chkI").datepicker("setDate", currentDate);
        $("#chkO").datepicker({ dateFormat: "yy-mm-dd", showAnim: "slideDown",
            onClose: function (selectedDate) {
                var maxDate = $(this).datepicker('getDate');
                var newMax = new Date(maxDate.setDate(maxDate.getDate() - 1));
                $("#chkI").datepicker("option", "maxDate", newMax);
            }
        });
    });

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вот как я отключаю даты до сегодняшнего дня:

$("#chkI").datepicker({
    minDate: new Date()
});

например, jsfiddle

0 голосов
/ 24 октября 2019

Вам просто нужно установить minDate и больше не инициализировать указатель даты для того же ввода

$(function () {
            $("#chkI").datepicker({
                minDate: new Date(), // start date should be today's date
                dateFormat: "yy-mm-dd", showAnim: "slideDown", 
                onClose: function (selectedDate) {
                    var minDate = $(this).datepicker('getDate');
                    var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
                    $("#chkO").datepicker("option", "minDate", newMin);
                }
            }).datepicker("setDate", new Date()); // select today's date by default
            //var currentDate = new Date();
            //$("#chkI").datepicker("setDate", currentDate);
            $("#chkO").datepicker({ dateFormat: "yy-mm-dd", showAnim: "slideDown",
                onClose: function (selectedDate) {
                    var maxDate = $(this).datepicker('getDate');
                    var newMax = new Date(maxDate.setDate(maxDate.getDate() - 1));
                    $("#chkI").datepicker("option", "maxDate", newMax);
                }
            });
        });
 <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>
<input type="text" id="chkI">
<input type="text" id="chk0">
...