所以我有这段代码
$('#apply').datepicker({
changeMonth: true, changeYear: true,
dateFormat: "dd-mm-yy",
onClose: function(selectedDate){
$('#last').prop('disabled', false);
$('#last').datepicker('destroy');
var formatted = selectedDate.split('-');
var new_date = formatted[1]+"/"+formatted[0]+"/"+formatted[2];
$('#last').datepicker({
dateFormat: "dd-mm-yy",
minDate: (function(){
var min = new Date(new_date);
min = $('#apply').datepicker('getDate');
var newmin = new Date(new_date);
newmin.setDate(min.getDate()+121);
return newmin;
})(),
maxDate:(function(){
var min = new Date(new_date);
min = $('#apply').datepicker('getDate');
var newmin = new Date(new_date);
newmin.setDate(min.getDate()+129);
return newmin;
})(),
});
}
});
问题是我的日期 #apply datepicker不会第二次触发,(第一次单击文本框,日期选择器将显示,单击外部,然后单击文本框再次,日期选择器woukd没有显示)为什么会这样?你能救我吗?
这是帮助您了解我的问题的JSFIDDLE DEMO
谢谢,
答案 0 :(得分:1)
你需要对min进行空检查,因为如果你没有选择任何日期,那么“getdate”会返回null
onClose: function(selectedDate){
$('#last').prop('disabled', false);
$('#last').datepicker('destroy');
var formatted = selectedDate.split('-');
var new_date = formatted[1]+"/"+formatted[0]+"/"+formatted[2];
$('#last').datepicker({
dateFormat: "dd-mm-yy",
minDate: (function(){
var min = new Date(new_date);
min = $('#apply').datepicker('getDate');
var newmin = new Date(new_date);
if(min != null)
newmin.setDate(min.getDate()+121);
return newmin;
})(),
maxDate:(function(){
var min = new Date(new_date);
min = $('#apply').datepicker('getDate');
var newmin = new Date(new_date);
if(min != null)
newmin.setDate(min.getDate()+129);
return newmin;
})(),
});
答案 1 :(得分:1)
此行导致错误,
min = $('#apply').datepicker('getDate');
更新 fiddle
如果您没有先选择日期。 min将为null。它会导致错误
newmin.setDate(min.getDate()+121);