1

如果我用鼠标在 Kendo UI 日期选择器中选择日期,我的观察者(绑定的 viewModel)会看到更改。但是,如果我在代码中设置 datepicker 的值,如下所示:

$("#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/

4

1 回答 1

2

输入小部件的更改事件仅由用户操作触发。DOM 元素以同样的方式工作。

如果您需要手动触发事件,请使用 trigger 方法。

$("#dateFromFilter").data("kendoDatePicker").trigger("change");

演示:http: //jsfiddle.net/q5xoyhx9/24/

这不是错误,这是设计使然

使用 API 时输入小部件不会引发更改事件

http://docs.telerik.com/kendo-ui/troubleshooting

于 2015-02-21T03:51:37.093 回答