我根据选择计算日期,然后我将此计算日期存储在exp_dt
变量上。此日期计算在change
函数下。我想要实现的是我在exp_dt
函数中将UI Datepicker
称为maxDate
,但我收到exp_dt is not defined
的错误。有什么办法可以在exp_dt
函数中使用UI Datepicker
吗?
我的代码到目前为止:
$('#date').change(function() {
var dep_dt = $(this).val();
$('#eff').val(dep_dt);
var eff_dt = new Date(dep_dt);
eff_dt.setDate(eff_dt.getDate() + 364);
var month = "0"+(eff_dt.getMonth()+1);
var date = "0"+eff_dt.getDate();
month = month.slice(-2);
date = date.slice(-2);
var exp_dt = month +"/"+date +"/"+eff_dt.getFullYear();
});
var dateToday = new Date();
$( function() {
$("#date").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
minDate: dateToday
});
$("#eff").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
minDate: dateToday
});
$("#exp").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
minDate: dateToday
});
});
我正在尝试exp_dt
$("#exp").datepicker({ });
中的maxDate
访问<input type="text" id="date">
<input type="text" id="eff">
<input type="text" id="exp">
setTimeout( ... )
setTimeout( ... )
setTimeout( ... )
答案 0 :(得分:0)
添加第11行以设置datepicker的maxDate值;
$('#date').change(function() {
var dep_dt = $(this).val();
$('#eff').val(dep_dt);
var eff_dt = new Date(dep_dt);
eff_dt.setDate(eff_dt.getDate() + 364);
var exp_dt = eff_dt;
$( "#exp" ).datepicker( "option", { maxDate: exp_dt } );
});
var dateToday = new Date();
$( function() {
$("#date").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
minDate: dateToday
});
$("#eff").datepicker({
changeMonth: true,
changeYear: true,
yearRange: "-100:+0",
minDate: dateToday
});
$("#exp").datepicker({
changeMonth: true,
changeYear: true,
minDate: dateToday
});
});
答案 1 :(得分:0)
您无法在另一个函数中访问函数的局部变量。 exp_dt
是change事件中函数的局部变量。使其成为全局变量将修复错误。
var exp_dt = '';
$('#date').change(function() {
var dep_dt = $(this).val();
$('#eff').val(dep_dt);
var eff_dt = new Date(dep_dt);
eff_dt.setDate(eff_dt.getDate() + 364);
var month = "0"+(eff_dt.getMonth()+1);
var date = "0"+eff_dt.getDate();
month = month.slice(-2);
date = date.slice(-2);
exp_dt = month +"/"+date +"/"+eff_dt.getFullYear();
});