首页 > 解决方案 > 更改事件未触发 - Kendo ComboBox

问题描述

我有一个 Kendo ComboBox 填充了一个列表,当用户在列表中选择不同的选项时,我想pageModel.newServiceModel.JobSelectionChange()触发。我尝试了 3 种不同的方法来做到这一点,但都没有奏效。我试图简单地设置 change: pageModel.newServiceModel.JobSelectionChange()、 change: (嵌入在pageModel.newServiceModel.JobSelectionChange()函数本身中的全部内容)以及我目前拥有的内容。当我更改下拉列表中的选择时,它们都没有导致函数被调用。此外,注释掉的更改:console.log()确实有效,因此它与此函数本身有关。对此有什么想法吗?

pageModel.newServiceModel.JobSelectionChange = function () {
    ...
}

// loading combobox
pageModel.newServiceModel.selectedJobs.subscribe(function (newData) {
    $("#newServiceJobs").data("kendoComboBox").dataSource.data(newData);
});

$("#newServiceJobs").kendoComboBox({
    placeholder: "Select One",
    filter: "contains",
    suggest: true,
    change: function() { pageModel.newServiceModel.JobSelectionChange(); },
    //change: function() { console.log("hello") },
    dataSource: pageModel.newServiceModel.selectedJobs(),
    dataTextField: "name",
    dataValueField: "jobid"
});

标签: javascriptdom-eventskendo-combobox

解决方案


奇怪的是,它应该按照您的方式工作-我在您的其他尝试中唯一要指出的是,在设置该功能时不要执行该功能。

所以:

$("#newServiceJobs").kendoComboBox({
    placeholder: "Select One",
    filter: "contains",
    suggest: true,
    change: pageModel.newServiceModel.JobSelectionChange,
    //change: function() { console.log("hello") },
    dataSource: pageModel.newServiceModel.selectedJobs(),
    dataTextField: "name",
    dataValueField: "jobid"
});

如果您这样做,并在您的 JobSelectionChange 函数中放置一个控制台日志/调试器/警报,您是否仍然看不到它执行?因为如果您看不到该函数命中,至少,您应该在控制台中看到一个错误,该函数的某些内容不存在或无法在未定义的情况下调用某些内容。


推荐阅读