2

我正在玩弄日期选择器以用于预订目的。
下面的代码几乎完全按照我的意愿工作。
问题是:我不希望“到”日期选择器允许未来一天以下的任何事情。

因此,例如,如果“From”是 25/09/13,我希望“To”至少是 26/09/13。
我需要改变什么才能使它成为我想要的方式?

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<link rel="stylesheet" href="http://jqueryui.com/datepicker//resources/demos/style.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>

    $(function() {
        $( "#from" ).datepicker({
            defaultDate: "+0w",
            changeMonth: true,
            numberOfMonths: 1,
            minDate: -0,
            onClose: function( selectedDate ) {
                $( "#to" ).datepicker( "option", "minDate" , selectedDate );
        }
        });

        $( "#to" ).datepicker({
            defaultDate: "+0w",
            changeMonth: true,
            numberOfMonths: 1,
            onClose: function( selectedDate ) {
                $( "#from" ).datepicker( "option", selectedDate );
        }
        });
    });

</script>

<form action="?q=Reservation" method="post">
    <label for="from">From</label>
    <input type="text" id="from" name="from" />
    <label for="to">to</label>
    <input type="text" id="to" name="to" />

    First name: <input type="text" name="FirstName" value="Mickey"><br>
    Last name: <input type="text" name="LastName" value="Mouse"><br>
    <input type="submit" value="Submit">
</form>
4

3 回答 3

2

您可以执行以下操作:

 $("#from").datepicker({
     defaultDate: "+0w",
     changeMonth: true,
     numberOfMonths: 1,
     minDate: -0,
     onClose: function (selectedDate) {
         var date2 = $('#from').datepicker('getDate');
         date2.setDate(date2.getDate() + 1);
         $("#to").datepicker("option", "minDate", date2);
     }
 });

因此,您获取当前的起始日期并使用 添加一天setDate,然后minDate按照您的想法设置选项。

演示:http: //jsfiddle.net/IrvinDominin/tSrGx/

于 2013-08-26T21:29:17.210 回答
1

在我看来你做得对,只需在 selectedDate 中添加一天:

var newDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), selectedDate.getDate()+1);
$( "#to" ).datepicker( "option", "minDate" , newDate);
于 2013-08-26T16:05:17.963 回答
0

最简单的方法是:

$( ".selector" ).datepicker({ minDate: -1, maxDate: 1 });
于 2013-08-31T12:54:45.513 回答