我目前正在做一个酒店预订网站,我正在尝试学习如何根据数据库中的值禁用 jQuery DatePickers。
例如,日期 3 月 1 日 到 3 月 5 日 被插入到数据库 A 表 checkin
和结账
行。
因此,现在 checkin
的值为 3 月 1 日,结账
的值为 3 月 5 日。
假设我有两个 jQuery 日期选择器,一个用于 checkin ,一个用于 checkout 。如何禁用从数据库内的值获取的 3 月 1 日 和 3 月 5 日 日期?
这是我当前的日期选择器脚本:
$(function () {
$("#checkin").datepicker({
dateFormat: "M-dd-yy",
minDate: 0,
onClose: function () {
var date2 = $('#checkin').datepicker('getDate');
date2.setDate(date2.getDate() + 1);
$('#checkout').datepicker('setDate', date2);
$('#checkout ').datepicker('option', 'minDate', date2);
datepicked();
$('#checkout').datepicker('option');
}
});
$('#checkout').datepicker({
dateFormat: "M-dd-yy",
minDate: 0,
onSelect: function () {
var dt1 = $('#checkin ').datepicker('getDate');
var dt2 = $('#checkout').datepicker('getDate');
datepicked();
//check to prevent a user from entering a date below date of dt1
if (dt2 <= dt1) {
var minDate = $('#checkout ').datepicker('option', 'minDate');
$('#checkout').datepicker('setDate', minDate);
$('#checkin').datepicker('option');
}
}
});
var datepicked = function() {
var checkin = $('#checkin');
var checkout = $('#checkout');
var nights = $('#nights');
var fromDate = checkin.datepicker('getDate');
var toDate = checkout.datepicker('getDate');
if (toDate && fromDate) {
var oneDay = 1000*60*60*24;
var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
nights.val(difference);
}
};
});
$(function () {
$("#date").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
autoclose: true,
startDate: new Date()
});
});
非常感谢您。
最佳答案
如果您尝试为此输入设置初始值,只需在日期选择器初始化后使用setDate
。
在 PHP 中设置输入的 value 属性:
<input id="checkin" value="<?= date('M-dd-yy', $valueFromDbCheckin) ?>">
只需调用setDate
:
$( "#checkin" ).datepicker( "setDate", $('checkin').val() );
如果您尝试禁用日期选择器中的某些日期,那么您可能可以尝试以下解决方案:
Disable array of date's Jquery DatePicker
关于php - 如何从 mysql 值/内容禁用 jQuery Datepicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48965454/