在javascript

时间:2017-06-16 16:15:32

标签: javascript jquery date datepicker

我试图使用用户从另一个日期选择器中选择的日期(即签到/退房日期)来设置日期选择器的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格式显示日期。

我做错了什么?

感谢您的帮助!

1 个答案:

答案 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
});