我有一个日期选择器,其最大可选日期是未来六个月。如果我选中一个复选框,则最大可选日期可以是将来的任何时间。我正在尝试使用Knockout.js。
这将是我的日期选择器输入选项:
<input id="newRequestStartDate"
type="text"
data-bind="sfDatePicker: request.startDate, sfDatePickerOptions: startDateOptions, disable: summaryHasInvalidDays()"
id="newTimeOffRequestStartDate"
class="sf-form-input"
data-range-group="ptoRange"
name="newTimeOffRequestStartDate"
/>
这将是我的复选框输入:
<input type="checkbox"
id="globalOverrideCheckbox"
data-bind="checked: request.isGlobalOverride, disable: summaryHasInvalidDays()"
/>
我有一个基于此的订阅绑定:
self.request.isGlobalOverride.subscribe(self.updateMaxAllowableDateInFuture);
和可订阅的代码是:
this.updateMaxAllowableDateInFuture = (function (isGlobalOverrideSet) {
if (isGlobalOverrideSet) {
_maxAllowableDateInFuture = _dateTenYearsFromNow;
//this.startDateOptions.maxDate = _maxAllowableDateInFuture;
self.destroyDatePicker();
}
return _maxAllowableDateInFuture;
});
答案 0 :(得分:0)
两个步骤:
将maxDate更改为可观察的,并直接在绑定中包含maxDate(这可能需要修改sfDatePicker绑定器)。
更新sfDatePicker绑定,以便在maxDate observable更改时更改datepicker上的设置。
如果您想了解更多详情,请提供sfDatePicker活页夹的代码