我试图使用用户从另一个日期选择器中选择的日期(即签到/退房日期)来设置日期选择器的minDate。
这是我的代码:
var checkin = document.getElementById('check-in');
var checkout = document.getElementById('check-out');
var dateField;
$('#check-in').datepicker({
onSelect: function (date) {
dateField = $(this).val();
console.log(date);
},
altField: '#actual-checkin-date',
altFormat: 'mm/dd/yy',
dateFormat: 'dd/mm/yy',
minDate: 0
});
$('#check-out').datepicker({
altField: '#actual-checkout-date',
altFormat: 'mm/dd/yy',
dateFormat: 'dd/mm/yy',
minDate: new Date(dateField)
});
checkin.onclick = function () {
$('#check-in').datepicker();
};
checkout.onclick = function () {
$('#check-out').datepicker();
console.log($('#check-out').datepicker("option", "minDate"));
}
我可以正确记录签到日期选择器中的日期,但我无法将该日期设置为签出日期选择器的minDate。最后一个日志(最后一个数据标签中的日志)显示我"无效日期",而第一个数据标签中的日志以dd / mm / yy格式显示日期。
我做错了什么?
感谢您的帮助!
答案 0 :(得分:1)
您在这里遇到两个问题: 1)当您创建签出时,创建了datepicker,您的dataField尚未定义(一旦您在签入日期选择器中选择数据,它就会被设置)
2)您没有创建有效日期 - 您可以使用$('#check-in').datepicker("getDate")
看一下这个小提琴:http://jsfiddle.net/nerL43s5/,看看它在行动。
$('#check-in').datepicker({
onSelect: function(date) {
console.log(date );
// now you have a date you can set as the minDate:
$('#check-out').datepicker('option', 'minDate', $('#check-in').datepicker('getDate'));
console.log($('#check-out').datepicker('option', 'minDate'));
},
altField: '#actual-checkin-date',
altFormat: 'mm/dd/yy',
dateFormat: 'dd/mm/yy',
minDate: 0
});