2

最大選択可能な日付が 6 か月先の日付ピッカーがあります。チェックボックスを選択すると、選択可能な最大日付は将来のいつでも可能です。これを 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;
});
4

1 に答える 1

0

2 つのステップ:

  1. maxDate をオブザーバブルに変更し、バインドに直接 maxDate を含めます (これには sfDatePicker バインダーの変更が必要になる場合があります)。

  2. maxDate オブザーバブルが変更されたときに日付ピッカーの設定が変更されるように、sfDatePicker バインディングを更新します。

詳細が必要な場合は、sfDatePicker バインダーのコードを提供してください

于 2014-08-28T20:22:48.320 に答える