Kendo ui 如何在KendoUI日期选择器中引发更改事件?

Kendo ui 如何在KendoUI日期选择器中引发更改事件?,kendo-ui,telerik,kendo-datepicker,Kendo Ui,Telerik,Kendo Datepicker,我试图使用下面的代码设置日期选择器的值,并期望“Change”事件被引发,但它没有 var datePicker = $("#datePicker").data("kendoDatePicker"); var previousDate = new Date(datePicker.value()); previousDate.setDate(previousDate.getDate() - 1); $("#displayDate").text(kendo.toString(new Date(pre

我试图使用下面的代码设置日期选择器的值,并期望“Change”事件被引发,但它没有

var datePicker = $("#datePicker").data("kendoDatePicker");
var previousDate = new Date(datePicker.value());
previousDate.setDate(previousDate.getDate() - 1);
$("#displayDate").text(kendo.toString(new Date(previousDate), 'D'));
datePicker.value(previousDate);

但是,通过用户界面更改日期值确实会引发预期的“更改”事件。

请尝试使用下面的代码段

HTML


JS


$(文档).ready(函数(){
函数onChange(){
警报(“更改::”+kendo.toString(this.value(),'d');
}
$(“#日期选择器”).kendoDatePicker({
更改:onChange
});
});
函数setdateInDP(){
var datePicker=$(“#datePicker”).data(“kendoDatePicker”);
var previousDate=新日期(datePicker.value());
previousDate.setDate(previousDate.getDate()-1);
datePicker.value(以前的日期);
$(“#日期选择器”).data(“kendoDatePicker”).trigger(“change”);
}

问题在于,它不会像通常使用选择器选择日期时那样触发输入更改。这是在datepicker的_change()函数中完成的。。。
<input id="datepicker" />
<input type="button" value="set date" onclick="setdateInDP()">
<script type="text/javascript">
$(document).ready(function () {
    function onChange() {
        alert("Change :: " + kendo.toString(this.value(), 'd'));
    }

    $("#datepicker").kendoDatePicker({
        change: onChange
    });
});

function setdateInDP() {
    var datePicker = $("#datepicker").data("kendoDatePicker");
    var previousDate = new Date(datePicker.value());
    previousDate.setDate(previousDate.getDate() - 1);
    datePicker.value(previousDate);
    $("#datepicker").data("kendoDatePicker").trigger("change");
}