javascript - 在 JavaScript 中的日期选择器上设置 minDate

标签 javascript jquery date datepicker

我正在尝试使用用户从另一个日期选择器中选择的日期(即 checkin / checkout 日期)来设置日期选择器的 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)当您创建 checkout 日期选择器时,您的数据字段尚未定义(一旦您在 checkin 日期选择器中选择数据,它就会被设置)

2) 您没有创建有效的日期 - 您可以使用 $('#check-in').datepicker("getDate") 访问日期选择器的日期

看看这个 fiddle :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
});

关于javascript - 在 JavaScript 中的日期选择器上设置 minDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44593726/

相关文章:

用于删除文本的 Javascript

javascript - Mongoose Async 查找所有内容并更新每个内容

javascript - jQuery:html() 函数与真实的 HTML 不匹配

javascript - 单击按钮时显示数组(从字符串转换)

php - Ajax删除功能不起作用

javascript - 类型的 Ajv 自定义错误消息

jQuery 对话框打开但不关闭!

java - 使用 Java/Joda 的日期之间的周期

Javascript 天 +/- 从今天开始

date - Pandas - 确定数据框中每个帐户的最大日期