javascript - 根据 Knockout.js 中的复选框绑定(bind) future 的日期选择器最大日期

标签 javascript knockout.js knockout-mvc

我有一个日期选择器,它的最大可选日期是 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;
});

最佳答案

两步:

  1. 将 maxDate 更改为可观察的,并将 maxDate 直接包含在您的绑定(bind)中(这可能需要修改 sfDatePicker 绑定(bind)器)。

  2. 更新 sfDatePicker 绑定(bind),以便它在 maxDate 可观察值发生变化时更改日期选择器上的设置。

如果您需要更多详细信息,请提供 sfDatePicker Binder 的代码

关于javascript - 根据 Knockout.js 中的复选框绑定(bind) future 的日期选择器最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19059365/

相关文章:

javascript - 如何从自动完成 jQuery 中过滤类别

javascript - 使用图表js显示的图表不正确

knockout.js - ko.observableArray 上的 ko.DirtyFlag 总是脏的

javascript - 实现自定义加载消息 DURANDAL

javascript - Knockout-3.2.0 - 内部列表 <object> 推送问题

javascript - 使用 knockout 选择后从下拉列表中设置所选值的 "title"

Javascript-使用 CSS 不透明度信息

Javascript/Jquery 注释导致 IE 中出现错误

c# - 编辑现有 View 模型数据

javascript - 根据它的值将样式应用于 knockout JS 动态表中的特定单元格