jQuery UI datepicker日期范围问题

时间:2011-10-19 00:14:04

标签: javascript jquery jquery-ui datepicker

我制作了两个日期字段(“拾取”和“dropin”)。而且,我想确保:

  1. 取件日期应早于下降日期。

  2. 当用户已经选择了他的dropin和提取日期,之后他将提取日期改为晚于dropin date,那么脚本会自动更改他的dropin日期,而不是用户选择的日期。 (例如,用户将“12/07/2011”放入取件日期,将“13/07/2011”放入下拉日期,然后将其取件日期更改为“13/08/2011”。如果是,则脚本应该将“13/08/2011”设为下拉日期。

  3. 我提到了这个站点中的一个线程。而且,以下是我现在拥有的代码。

      $.datepicker.setDefaults({dateFormat: 'dd/mm/yy'});
      $("#pickup").datepicker({
                onSelect: function(dateText, inst){
                  var minDate = $(this).datepicker('getDate');
                  $('#dropin').datepicker('destroy').datepicker({
                            minDate: minDate
                        });
                 },
                onClose: function(dateText, inst) {
                    if(dateText == '') {
                        $('#dropin').val('');
                    $('#dropin').datepicker('destroy').datepicker();
                    }
                 }
                });
    
                $("#dropin").datepicker();
                var set=$("#dropin").datepicker('getDate');
                alert(set.getDate());
    

    看起来它满足第一个。但是,我不知道第二个约束。并且,它一直声明's'为空。

    你能帮我解决这个问题吗? 非常感谢你。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

    var date = new Date();
    $.datepicker.setDefaults({
        'dateFormat' : 'yy-mm-dd',
        'onSelect' : function(dateText, inst){
            instance = $(this).data('datepicker'),
            selectedDate = $.datepicker.parseDate(
                instance.settings.dateFormat || $.datepicker._defaults.dateFormat,
                dateText,
                instance.settings
            );
            if (this.id == 'datepicker-pickup') {
                $('#' + 'datepicker-dropin')
                    .datepicker('option', 'minDate', selectedDate)
                    .datepicker('refresh');
                datePickup = dateText;
            }
            if (this.id == 'datepicker-dropin') {
                $('#' + 'datepicker-pickup')
                    .datepicker('option', 'maxDate', selectedDate)
                    .datepicker('refresh');
                dateDropin = dateText;
            }
        }
    });
    $('#datepicker-pickup').datepicker({
        'defaultDate' : datePickup,
        'maxDate' : dateDropin
    });
    $('#datepicker-dropin').datepicker({
        'defaultDate' : dateDropin,
        'minDate' : datePickup,
        'maxDate' : new Date(date.getFullYear(), date.getMonth(), date.getDate())
    });