我尝试使用 jQuery UI 日期选择器并使用两个文本字段来创建日期范围。第一个文本字段“start_date”将设置开始日期,第二个文本字段“end_date”将设置结束日期。
到目前为止我的代码是这样的:
$('#start_date').live(
'focus',
function()
{
$('#end_date').datepicker(
{
dateFormat: 'dd MM yy',
minDate: new Date(),
maxDate: new Date(2012, 9, 15),
stepMonths: 2,
numberOfMonths: 2
}
);
$(this).datepicker(
{
dateFormat: 'dd MM yy',
minDate: new Date(),
maxDate: new Date(2012, 9, 15),
stepMonths: 2,
numberOfMonths: 2,
onSelect: function(dateText, inst)
{
var instance = $( this ).data("datepicker");
var date = $.datepicker.parseDate(instance.settings.dateFormat, dateText, instance.settings);
$('#end_date').datepicker('option', 'minDate', dateText);
}
}
);
}
);
注意:我使用 live 和 focus 事件,因为我的所有页面内容都是通过 AJAX 调用加载的。也许这是正确的或错误的,但这不是我想在这里问的;)
上面的代码对我来说是正确的并且工作正常,但我喜欢做的是将“end_date”元素的值设置为选定的 1 +3 天。
到目前为止,当我在“start_date”元素中选择日期时,“end_date”元素会更改为与“start_date”相同的日期,这就是我想要更改的内容。 “end_date”距离“start_date”元素+3天后进行选择。
我怎样才能做到这一点?
最佳答案
将 end_date 设置为 +1 天
onSelect: function(dateText, inst) {
$('#start_date').datepicker('option','minDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
var toDate = new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay);//Date one month after selected date
var oneDay = new Date(toDate.getTime()+86400000);
document.getElementById('end_date').value =$.datepicker.formatDate('dd/mm/yy', oneDay);
}
关于jQuery UI Datepicker - onSelect 获取所选日期 +3 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10530134/