Bootstrap DatePicker使用onRender禁用了许多日期



我正在使用eyecon的Bootstrap Datepicker插件,可以在这里找到-http://www.eyecon.ro/bootstrap-datepicker/

我正试图使用onRender事件来禁止选择许多日期。我需要为签入和签出禁用今天之后的所有日期(未来日期)。签出还需要任何等于或早于禁用签入的日期。签入非常有效,尽管签出根本不起作用。

可以肯定的是,问题是我没有正确返回值,因为我的逻辑似乎很好。

以下是我的尝试,使用Datepicker网站上的示例代码:

HTML:

Check in: <input type="text" class="span2" value="" id="dpd1"></input>
Check out: <input type="text" class="span2" value="" id="dpd2"></input>

JS:

var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
var checkin = $('#dpd1').datepicker({
    onRender: function (date) {
        return date.valueOf() < now.valueOf() ? 'disabled' : '';
    }
}).on('changeDate', function (ev) {
    if (ev.date.valueOf() > checkout.date.valueOf()) {
        var newDate = new Date(ev.date)
        newDate.setDate(newDate.getDate() + 1);
        checkout.setValue(newDate);
    }
    checkin.hide();
    $('#dpd2')[0].focus();
}).data('datepicker');
var checkout = $('#dpd2').datepicker({
    onRender: function (date) {
        return (date.valueOf() > now.valueOf()) && (date.valueOf() <= checkin.date.valueOf()) ? 'disabled' : '';
    }
}).on('changeDate', function (ev) {
    checkout.hide();
}).data('datepicker');

工作演示

您需要检查所选日期是否小于或不大于结账日期。

 if (ev.date.valueOf() < checkout.date.valueOf()) {

在用于签出的Render方法上,您正在检查日期是否在今天之前,并且在签入日期之前,这永远不可能是真的。您应该检查介于签入日期和今天之间的箱子。希望这是你想要的。

onRender: function (date) {
    return (date.valueOf() < now.valueOf()) && (date.valueOf()>= checkin.date.valueOf()) ? '' : 'disabled';
}

演示小提琴

最新更新