If I select date in Kendo UI datepicker with a mouse, my observer (binded viewModel) see the changes. But if I set value of datepicker in code, like this:
$("#dateFromFilter").data("kendoDatePicker").value(todayDate);
the observer doesn't catch the event:
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);
Is it a correct behaviour? How to resolve the issue?
JSfidler: http://jsfiddle.net/asartem/q5xoyhx9/11/
Change event of an input widget is triggered only by user action. DOM elements work in the same way.
If you need to trigger an event manually use the trigger method.
$("#dateFromFilter").data("kendoDatePicker").trigger("change");
Demo: http://jsfiddle.net/q5xoyhx9/24/
This is not a bug this is by design
Input Widgets do not raise change event when API is used