当图形日历在页面上持久存在时,jQuery 日期选择器默认日期不会自动设置为下一个可用日期



当图形日历持久在页面上时,jquery 日期选择器默认日期不会自动设置为下一个可用日期。 日历选择的初始日期可以是我禁用的日期。当日历是输入字段的弹出窗口时,许多关于解决方法的建议都有效,但当日历持续显示为div 时不起作用。 无论禁用的日期是 noWeekends、星期几还是单独设置的日期,初始日期值都可以是禁用且不可单击的日期。我正在使用 alterate1 输入字段(我通常隐藏(将数据传递到 PHP 页面上。我所拥有的几乎有效,但是当 minDate 碰巧降落在可用日期时,下一个可用日期显示为突出显示,但是当 minDate 降落在不可选择的日期时,突出显示是隐藏的。我使用的 setDate null 的临时修复 - 无论突出显示如何,都会清除初始选择值,因此访问者可能会认为日期已经选定,而实际上并非如此。我的PHP页面向访问者报告他们必须返回并实际选择一个日期。我对日期选择器的使用面向移动设备,因此使用弹出或浮出控件日历来使用众所周知的解决方法是不利的,日历 GUI 需要在页面上持久化。要为自己重新创建我的问题,请在 jsfiddle 上注释掉最后一个 javascript 行,在 var 选择中禁止周中的日期,然后设置 minDate,使其登陆不允许的日期。您会注意到 alterate1 输入预先填充了不允许的日期。

网页代码:

<div id="dp1"></div>
<input type="text" id="alternate1" name="alternate1"/> <!-- style="display:none;" this is the field that passes on to php -->   

JavaScript代码:

var selections = [
"2017-07-29",
"2017-07-30",
"2017-08-05",
"2017-08-06",
"2017-08-12",
"2017-08-13",
"2017-08-19",
"2017-08-20",
"2017-08-26",
"2017-08-27",
"2017-09-02",
"2017-09-03",
"2017-09-04",
"2017-09-09",
"2017-09-10",
"2017-09-16",
"2017-09-17",
"2017-09-23",
"2017-09-24",
"2017-09-30",
"2017-10-01",
"2017-10-07",
"2017-10-08",
"2017-10-09",
"2017-10-14",
]
function bansingle(date) {
var excerpt = jQuery.datepicker.formatDate('yy-mm-dd', date);
return [ selections.indexOf(excerpt) == -1 ]
}
// somehow combine this function later.
//function bandow(date) {
//              var day = date.getDay();
//          return [(day != 0 && day != 6)];
//      }

$('#dp1').datepicker({
beforeShowDay: bansingle,
altField:'#alternate1',
altFormat: 'm-d-yy',
fielddateFormat: 'm-d-yy',
minDate: "+0d",
//maxDate: "+1m", // set latest selectable date
});
$('#dp1').datepicker("setDate", null); //clears alternate1 input field value

这是jsfiddle,它确实包含更多日期和一点CSS。我建议在新选项卡中打开它,以便在编辑代码后能够返回此页面。

我在这里的另一个问题的进展已经否定了对这个问题的答案的需要。 对输入、样式和选项进行多次更改 - 将解决此问题的问题。