Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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 日期选择器关闭问题_Javascript_Jquery_Datepicker - Fatal编程技术网

Javascript 日期选择器关闭问题

Javascript 日期选择器关闭问题,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,通过对这个网站的研究,我找到了一种使用2个日期选择器的方法。如果您在第一个日期上选择了一个日期,则第二个日期将自动显示为新日期。您可以在我的测试服务器上看到这一点: 我遇到的问题发生在这种情况下: 选择“签入日期”字段,但不要选择日期并单击其他位置。你不会的 在刷新整个页面或首先选择签出日期之前,可以重新获取签入日期字段datepicker弹出窗口 这是我正在使用的代码: $( "#datepicker1" ).datepicker({ showOn: 'both', buttonImage:

通过对这个网站的研究,我找到了一种使用2个日期选择器的方法。如果您在第一个日期上选择了一个日期,则第二个日期将自动显示为新日期。您可以在我的测试服务器上看到这一点:

我遇到的问题发生在这种情况下: 选择“签入日期”字段,但不要选择日期并单击其他位置。你不会的 在刷新整个页面或首先选择签出日期之前,可以重新获取签入日期字段datepicker弹出窗口

这是我正在使用的代码:

$( "#datepicker1" ).datepicker({
showOn: 'both',
buttonImage: 'images/ico/calendar.png',
buttonImageOnly: true,
minDate: 0,
firstDay: 0,
dateFormat: 'mm-dd-yy',
changeMonth: false,
numberOfMonths: 1,
onClose: function( selectedDate ) {
    var minDate = $(this).datepicker('getDate');
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
    $( "#datepicker2" ).datepicker( "option", "minDate", newMin );
    $( "#datepicker2" ).datepicker( "show" );
}
});
$( "#datepicker2" ).datepicker({

showOn: 'both',
buttonImage: 'images/ico/calendar.png',
buttonImageOnly: true,
minDate: '+1d',
changeMonth: false,
firstDay: 0,
dateFormat: 'mm-dd-yy',
numberOfMonths: 1,
onClose: function( selectedDate ) {
}
});
我试着用onSelect替换onClose。这就解决了这个问题,但是当我在datepicker1上选择一个日期时,datepicker2会在一瞬间出现并消失

有人有办法让它正常工作吗

谢谢,,
Guilliano

尝试用

...,
onClose: function( selectedDate ) {
  var minDate = $(this).datepicker('getDate');
  if(minDate){
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
    $( "#datepicker2" ).datepicker( "option", "minDate", newMin );
    $( "#datepicker2" ).datepicker( "show" );
  }
}

查看控制台,我可以看到正在记录此错误:

无法调用null的方法“getDate”

这意味着你的声明:

var minDate = $(this).datepicker('getDate');
这是问题的根源。您可以做的是首先检查
selectedDate
(传递给
onClose
回调)是否有效,然后再尝试
getDate

onClose: function(selectedDate) {
    if (selectedDate) {
        ...
    }
}

一旦关闭,检查minDate是否已定义,并在脚本的其余部分携带一个。您是对的。用Marco提供的条件语句解决了这个问题。谢谢你的帮助!