I'm trying to enable / disable a kendo datepicker based on the selected value of an select using Knockout-Kendo.js.
The HTML:
<select data-bind="value: test">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input data-bind="kendoDatePicker: {value: date, enabled: test() == 2}" />
The JS:
ko.applyBindings({
date: ko.observable(),
test: ko.observable(),
});
The fiddle: http://jsfiddle.net/xTjqH/2/
It does initially disable the datepicker, but it wont enable it once "2" is selected.
Based on the way that dependencies are tracked for the individual options in the kendo bindings, you would need to represent your enabled
condition with a computed. Otherwise, the test() == 2
is evaluated immediately and never again.
With your sample, you could bind against a computed like dateEnabled
:
var viewModel = {
date: ko.observable(),
test: ko.observable(),
};
viewModel.dateEnabled = ko.computed(function() {
return viewModel.test() === "2";
});
来源:https://stackoverflow.com/questions/19570109/dynamically-enable-disable-kendo-datepicker-with-knockout-kendo-js