Kendo datepicker 值方法不会触发它自己的更改事件
Kendo datepicker value method doesn't fire its own change event
如果我 select 使用鼠标在 Kendo UI 日期选择器中设置日期,我的观察者(绑定的 viewModel)会看到更改。
但是如果我在代码中设置日期选择器的值,像这样:
$("#dateFromFilter").data("kendoDatePicker").value(todayDate);
观察者没有捕捉到事件:
dateRangeViewModel = kendo.observable({
selectedDateFrom: null,
onChange: function (e) {
// selectedDateFrom is not changing because datePicker change event don't work for this
console.log("date: " + kendo.toString(this.get("selectedDateFrom"), "D"));
}
});
kendo.bind($("#dateFromFilter"), dateRangeViewModel);
这是正确的行为吗?如何解决这个问题?
JSfidler: http://jsfiddle.net/asartem/q5xoyhx9/11/
输入小部件的更改事件仅由用户操作触发。 DOM 个元素以相同的方式工作。
如果您需要手动触发事件,请使用触发方法。
$("#dateFromFilter").data("kendoDatePicker").trigger("change");
演示:http://jsfiddle.net/q5xoyhx9/24/
这不是错误,这是设计使然
Input Widgets do not raise change event when API is used
如果我 select 使用鼠标在 Kendo UI 日期选择器中设置日期,我的观察者(绑定的 viewModel)会看到更改。 但是如果我在代码中设置日期选择器的值,像这样:
$("#dateFromFilter").data("kendoDatePicker").value(todayDate);
观察者没有捕捉到事件:
dateRangeViewModel = kendo.observable({
selectedDateFrom: null,
onChange: function (e) {
// selectedDateFrom is not changing because datePicker change event don't work for this
console.log("date: " + kendo.toString(this.get("selectedDateFrom"), "D"));
}
});
kendo.bind($("#dateFromFilter"), dateRangeViewModel);
这是正确的行为吗?如何解决这个问题?
JSfidler: http://jsfiddle.net/asartem/q5xoyhx9/11/
输入小部件的更改事件仅由用户操作触发。 DOM 个元素以相同的方式工作。
如果您需要手动触发事件,请使用触发方法。
$("#dateFromFilter").data("kendoDatePicker").trigger("change");
演示:http://jsfiddle.net/q5xoyhx9/24/
这不是错误,这是设计使然
Input Widgets do not raise change event when API is used