我有一个日期选择器,它的最大可选日期是 future 六个月。如果我选择一个复选框,最大可选日期可以是 future 的任何时间。我正在尝试使用 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()"
/>
我有一个基于此的订阅绑定(bind):
self.request.isGlobalOverride.subscribe(self.updateMaxAllowableDateInFuture);
订阅的代码是:
this.updateMaxAllowableDateInFuture = (function (isGlobalOverrideSet) {
if (isGlobalOverrideSet) {
_maxAllowableDateInFuture = _dateTenYearsFromNow;
//this.startDateOptions.maxDate = _maxAllowableDateInFuture;
self.destroyDatePicker();
}
return _maxAllowableDateInFuture;
});
最佳答案
两步:
将 maxDate 更改为可观察的,并将 maxDate 直接包含在您的绑定(bind)中(这可能需要修改 sfDatePicker 绑定(bind)器)。
更新 sfDatePicker 绑定(bind),以便它在 maxDate 可观察值发生变化时更改日期选择器上的设置。
如果您需要更多详细信息,请提供 sfDatePicker Binder 的代码
关于javascript - 根据 Knockout.js 中的复选框绑定(bind) future 的日期选择器最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19059365/