【问题标题】:Kendo dropdownlist trigger change eventKendo 下拉列表触发更改事件
【发布时间】:2017-03-21 10:02:55
【问题描述】:

我正在尝试使用下面的代码设置我的 Kendo 下拉列表的值,并期望引发“更改”事件,但事实并非如此。有人可以帮忙吗?

根据要求添加了附加代码。

HTML 代码

<div class="col-md-12 no-padding">
     <select id="serviceAccounts"
             kendo-drop-down-list
             k-ng-model="vm.customer.serviceAccountId"
             k-value-primitive="true"
             k-options="vm.setServiceAccountOptions" style="width: 100%">
     </select>
</div>

提前致谢!

【问题讨论】:

  • 恐怕当您运行setServiceAccountOptions() 时,小部件尚未初始化。你能发布你的完整代码吗?
  • setServiceAccountOptions() 在数据可用时调用。我已经添加了相同的代码。

标签: javascript kendo-ui


【解决方案1】:
$("#serviceAccounts").trigger("change");

不会触发 Kendo DropDownList 的“更改”事件,因为

$("#serviceAccounts")

这不是你的 Kendo DropDownList...它只是一个 jQuery 选择器。

您需要先获得对实际 DropDownList 的引用,然后才能触发其中的一个事件,即:

var dropDownList = $("#serviceAccounts").getKendoDropDownList();
dropDownList.trigger("change");

显示 selector.trigger() 和 dropdownlist.trigger() 之间差异的示例: http://dojo.telerik.com/@Stephen/UxiLo

显示如何使用 Angular 小部件引用而不是 jQuery 小部件引用来触发更改事件的示例: http://dojo.telerik.com/@Stephen/IToFI

【讨论】:

  • 感谢您的回复!但是, $("#serviceAccounts").getKendoDropDownList();即将“未定义”。
  • 您必须仍在尝试触发事件初始化而不是之后...直到您无法获得对小部件的引用kendo 已经完成了它的初始化。在 setServiceAccountOptions() 期间(您试图在编辑之前触发事件),小部件还不存在,如 DontVoteMeDown 所示,因为它位于初始化代码的中间。因此,您需要做两件事:使用正确的语法来获取对小部件的引用,并等到小部件完成初始化后再尝试引用它。
  • 感谢斯蒂芬的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多