jQuery DatePicker - 2个字段

时间:2009-08-13 23:49:52

标签: php jquery jquery-ui datepicker

我目前正在使用jQuery并使用datepicker。

我有两个输入字段:开始日期和结束日期。单击每个时,会弹出datepicker。

对于“结束日期”字段,我希望jQuery日期选择器在同一天突出显示。例如,如果用户选择8/12/09作为开始日期,则在结束日期之前,他们无法在8/12/09之前选择任何内容。

以下是我目前的情况:

$("#datepicker").datepicker({minDate: +5, maxDate: '+1M +10D', changeMonth: true});
var startDate = $("#datepicker").val();
var the_date = new Date(startDate);
$("#datepicker2").datepicker({ minDate: the_date });

而且,不幸的是,这不起作用。

我发现如果我对这些值进行“硬编码”,例如:

$("#datepicker2").datepicker({ minDate: new Date("08/12/2009") });

它会正常工作。关于如何将“开始日期”传递给“结束日期”选择器的任何想法?

谢谢!

3 个答案:

答案 0 :(得分:4)

这无法工作

你需要一个来自日期选择器的回调函数来进行“选择”事件。如果这个事件你的startDate将是空的。

试试这个:

$("#datepicker").datepicker({
     minDate: +5, 
     maxDate: '+1M +10D', 
     changeMonth: true, 
     onSelect: function(dateText, inst){
               var the_date = new Date(dateText);
               $("#datepicker2").datepicker('option', 'minDate', the_date);
     }
 });
 $("#datepicker2").datepicker(); // add options if you want

答案 1 :(得分:0)

答案 2 :(得分:0)

日期时间文化因不同用户而异。 jquery ui minimum对上面的代码不起作用。最初,如果我选择结束日期,则最终日期不会设置为结束日期。

<input type="text" id="tbStartDate" value="" disabled="disabled" />
<input type="text" id="tbEndDate" value="" disabled="disabled" />

<script type="text/javascript">
    $(document).ready(function () {
        $("#tbStartDate").datepicker({
            //minDate: +5, 
            //maxDate: '+1M +10D', 
            //changeMonth: true,
            dateFormat: 'dd-mm-yy',
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: '/Content/Calendar.png',
            buttonText: 'Click here (date)',
            onSelect: function (dateText, inst) {
                $('#tbEndDate').datepicker("option", 'minDate', new Date($("#tbStartDate").datepicker('getDate')));
            },
            onClose: function (dateText, inst) {
                //$("#StartDate").val($("#tbStartDate").val());
            }
        });

        $("#tbEndDate").datepicker({
            dateFormat: 'dd-mm-yy',
            showOn: 'button',
            buttonImageOnly: true,
            buttonImage: '/Content/Calendar.png',
            buttonText: 'Click here (date)',
            onClose: function (dateText, inst) {
                //$("#EndDate").val($("#tbEndDate").val());
            }
        });

        $('#tbEndDate').datepicker("option", 'minDate', new Date($("#tbStartDate").datepicker('getDate')));
    });
</script>