Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery日期选择器在范围选择和单一日期选择之间切换_Javascript_Jquery_Jquery Ui_Datepicker - Fatal编程技术网

Javascript jQuery日期选择器在范围选择和单一日期选择之间切换

Javascript jQuery日期选择器在范围选择和单一日期选择之间切换,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,我使用Datepicker在单程和往返巴士行程的日期选择之间切换 函数datecalendar用于round并从round div启动,而datecalendar1用于单向并从“from”div启动 这两个函数都在第一个实例上正确执行 但是,如果我首先选择任何函数,比如说为单向选择datecalendar1,它可以正常工作,但是在选择之后,如果我单击return div(范围选择的onclickdatecalendar),它将连接到该函数上)然后,静态日期选择器通过单个日期选择启动,而不是像on

我使用Datepicker在单程和往返巴士行程的日期选择之间切换

  • 函数
    datecalendar
    用于round并从round div启动,而
    datecalendar1
    用于单向并从“from”div启动

  • 这两个函数都在第一个实例上正确执行

  • 但是,如果我首先选择任何函数,比如说为单向选择
    datecalendar1
    ,它可以正常工作,但是在选择之后,如果我单击return div(范围选择的onclick
    datecalendar
    ),它将连接到该函数上)然后,静态日期选择器通过单个日期选择启动,而不是像onclick附加的
    datecalendar
    函数中那样的范围

           <script type="text/javascript">
          function datecalendar () {
            $.datepicker._clearDate('#datesearchdiv');
             $.datepicker._defaults.onAfterUpdate = null;
    
    
       var datepicker__updateDatepicker = $.datepicker._updateDatepicker;
          $.datepicker._updateDatepicker = function(inst) {
            datepicker__updateDatepicker.call(this, inst);
    
              var onAfterUpdate = this._get(inst, 'onAfterUpdate');
                 if (onAfterUpdate) onAfterUpdate.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ''), inst]);
           }
    
    
               $(function() {
    
             var cur = -1,
             prv = -1;
              $('#datesearchdiv')
    .datepicker({
      numberOfMonths: [12, 1],
      changeMonth: true,
      changeYear: true,
      minDate: 0,
    
    
      beforeShowDay: function(date) {
        return [true, ((date.getTime() >= Math.min(prv, cur) && date.getTime() <= Math.max(prv, cur)) ? 'date-range-selected' : '')];
      },
    
      onSelect: function(dateText, inst) {
        var d1, d2;
    
        prv = cur;
        cur = (new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay)).getTime();
        if (prv == -1 || prv == cur) {
          prv = cur;
          $('#departdate').val(dateText);
        } else {
          d1 = $.datepicker.formatDate('dd/mm/yy', new Date(Math.min(prv, cur)), {});
          d2 = $.datepicker.formatDate('dd/mm/yy', new Date(Math.max(prv, cur)), {});
          var d11 = $.datepicker.formatDate('mm/dd/yy', new Date(Math.min(prv, cur)), {});
          var d22 = $.datepicker.formatDate('mm/dd/yy', new Date(Math.max(prv, cur)), {});
          $('#departdate').val(d1);
          $('#returndate').val(d2);
          spandateupdate(d11, d22);
        }
      },
    
      onChangeMonthYear: function(year, month, inst) {
        //prv = cur = -1;
      },
    
    
    })
    .position({
      my: 'left top',
      at: 'left bottom',
      of: $('#departdate')
    })
    .hide();
    
                $('#departdate').on('focus', function(e) {
    var v = this.value,
      d;
    
    try {
      if (v.indexOf(' - ') > -1) {
        d = v.split(' - ');
    
        prv = $.datepicker.parseDate('mm/dd/yy', d[0]).getTime();
        cur = $.datepicker.parseDate('mm/dd/yy', d[1]).getTime();
    
      } else if (v.length > 0) {
        prv = cur = $.datepicker.parseDate('mm/dd/yy', v).getTime();
      }
    } catch (e) {
      cur = prv = -1;
    }
    
    if (cur > -1) $('#datesearchdiv').datepicker('setDate', new Date(cur));
    
    $('#datesearchdiv').datepicker('refresh').show();
           showdatespan();
    
         });
    
          });
    
           document.getElementById("departdate").focus();
           document.getElementById("departdate").select();
              }
                  </script>
                       <script type="text/javascript">
                          function datecalendar1 () {
                      $.datepicker._defaults.onAfterUpdate = null;
    
    
          var datepicker__updateDatepicker = $.datepicker._updateDatepicker;
               $.datepicker._updateDatepicker = function(inst) {
         datepicker__updateDatepicker.call(this, inst);
    
        var onAfterUpdate = this._get(inst, 'onAfterUpdate');
             if (onAfterUpdate) onAfterUpdate.apply((inst.input ? inst.input[0] :    null), [(inst.input ? inst.input.val() : ''), inst]);
          }
    
    
           $(function() {
    
            var cur = -1,
                  prv = -1;
              $('#datesearchdiv')
    .datepicker({
      numberOfMonths: [12, 1],
      changeMonth: true,
      changeYear: true,
      minDate: 0,
    
    
      beforeShowDay: function(date) {
        return [true, ((date.getTime() === Math.min(cur)) ? 'date-range-selected' : '')];
      },
    
      onSelect: function(dateText, inst) {
        var d1;
    
        prv = cur;
        cur = (new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay)).getTime();
        if (prv == -1 || prv == cur) {
          prv = cur;
          $('#departdate').val(dateText);
        } else {
          d1 = $.datepicker.formatDate('dd/mm/yy', new Date(Math.min( cur)), {});
          var d11 = $.datepicker.formatDate('mm/dd/yy', new Date(Math.min( cur)), {});
          $('#departdate').val(d1);
          spandateupdate1(d11);
        }
      },
    
      onChangeMonthYear: function(year, month, inst) {
        //prv = cur = -1;
      },
    
    
    })
    .position({
      my: 'left top',
      at: 'left bottom',
      of: $('#departdate')
    })
    .hide();
    
           $('#departdate').on('focus', function(e) {
    var v = this.value,
      d;
    
    try {
      if (v.indexOf(' - ') > -1) {
        d = v.split(' - ');
    
        prv = $.datepicker.parseDate('mm/dd/yy', d[0]).getTime();
        cur = $.datepicker.parseDate('mm/dd/yy', d[1]).getTime();
    
      } else if (v.length > 0) {
        prv = cur = $.datepicker.parseDate('mm/dd/yy', v).getTime();
      }
    } catch (e) {
      cur = prv = -1;
    }
    
    if (cur > -1) $('#datesearchdiv').datepicker('setDate', new Date(cur));
    
    $('#datesearchdiv').datepicker('refresh').show();
    showdatespan();
    
      });
    
        });
         document.getElementById("departdate").focus();
         document.getElementById("departdate").select();
       }
            </script>  
    
    
    函数datecalendar(){
    $.datepicker._clearDate('#datesearchdiv');
    $.datepicker.\u defaults.onAfterUpdate=null;
    var datepicker\uu updateDatepicker=$.datepicker.\u updateDatepicker;
    $.datepicker.\u updateDatepicker=函数(inst){
    datepicker\uuuu updateDatepicker.call(这个,inst);
    var onAfterUpdate=this._get(inst'onAfterUpdate');
    if(onAfterUpdate)onAfterUpdate.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():“”),inst]);
    }
    $(函数(){
    var cur=-1,
    prv=-1;
    $(“#datesearchdiv”)
    .日期选择器({
    月数:[12,1],
    变化月:对,
    变化年:是的,
    minDate:0,
    beforeShowDay:功能(日期){
    返回[true,((date.getTime()>=Math.min(prv,cur)和&date.getTime()-1){
    d=v.分裂('-');
    prv=$.datepicker.parseDate('mm/dd/yy',d[0]).getTime();
    cur=$.datepicker.parseDate('mm/dd/yy',d[1]).getTime();
    }否则如果(v.length>0){
    prv=cur=$.datepicker.parseDate('mm/dd/yy',v.getTime();
    }
    }捕获(e){
    cur=prv=-1;
    }
    如果(cur>-1)$(“#datesearchdiv”).datepicker('setDate',new Date(cur));
    $('#datesearchdiv').datepicker('refresh').show();
    showdatespan();
    });
    });
    document.getElementById(“departdate”).focus();
    document.getElementById(“departdate”).select();
    }
    函数datecalendar1(){
    $.datepicker.\u defaults.onAfterUpdate=null;
    var datepicker\uu updateDatepicker=$.datepicker.\u updateDatepicker;
    $.datepicker.\u updateDatepicker=函数(inst){
    datepicker\uuuu updateDatepicker.call(这个,inst);
    var onAfterUpdate=this._get(inst'onAfterUpdate');
    if(onAfterUpdate)onAfterUpdate.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():“”),inst]);
    }
    $(函数(){
    var cur=-1,
    prv=-1;
    $(“#datesearchdiv”)
    .日期选择器({
    月数:[12,1],
    变化月:对,
    变化年:是的,
    minDate:0,
    beforeShowDay:功能(日期){
    返回[true,((date.getTime()==Math.min(cur))?“所选日期范围”:“”);
    },
    onSelect:函数(日期文本,inst){
    变量d1;
    prv=cur;
    cur=(新日期(inst.selectedYear、inst.selectedMonth、inst.selectedDay)).getTime();
    如果(prv==1 | | prv==cur){
    prv=cur;
    $('departdate').val(dateText);
    }否则{
    d1=$.datepicker.formatDate('dd/mm/yy',新日期(Math.min(cur)),{};
    var d11=$.datepicker.formatDate('mm/dd/yy',新日期(Math.min(cur)),{};
    $('出发日期').val(d1);
    拱肩1(d11);
    }
    },
    onChangeMonthYear:功能(年、月、月){
    //prv=cur=-1;
    },
    })
    .职位({
    我的‘左上’,
    在“左下角”,
    共:$(“#出发日期”)
    })
    .hide();
    $('departdate')。关于('focus',函数(e){
    var v=该值,
    D
    试一试{
    如果(v.indexOf('-')>-1){
    d=v.分裂('-');
    prv=$.datepicker.parseDate('mm/dd/yy',d[0]).getTime();
    cur=$.datepicker.parseDate('mm/dd/yy',d[1]).getTime();
    }否则如果(v.length>0){
    prv=cur=$.datepicker.parseDate('mm/dd/yy',v.getTime();
    }
    }捕获(e){
    cur=prv=-1;
    }
    如果(cur>-1)$(“#datesearchdiv”).datepicker('setDate',new Date(cur));
    $('#datesearchdiv').datepicker('refresh').show();
    showdatespan();
    });
    });
    document.getElementById(“departdate”).focus();
    document.getElementById(“departdate”).select();
    }