Javascript KendoUI组合框更改事件运行多次

Javascript KendoUI组合框更改事件运行多次,javascript,kendo-ui,Javascript,Kendo Ui,我有一个用于KendoUI组合框的MVC控件,它不会提前设置更改事件。呈现时,页面控制器会在其自己的更改事件中设置和调整垫片 奇怪的是,此事件会被调用两次: 当我更改所选项目时 当我离开控件单击时 Q:我做错了什么? Q:这就是我们应该在现有剑道组合框上重写更改事件的方式吗? MVC控制: 正如您所看到的,我没有在这里定义任何客户端事件 @(Html.Kendo().ComboBox() .Name("ddlTechnician") .Filter("contains") .P

我有一个用于KendoUI组合框的MVC控件,它不会提前设置更改事件。呈现时,页面控制器会在其自己的更改事件中设置和调整垫片

奇怪的是,此事件会被调用两次:

  • 当我更改所选项目时
  • 当我离开控件单击时

Q:我做错了什么?
Q:这就是我们应该在现有剑道组合框上重写更改事件的方式吗?

MVC控制:
正如您所看到的,我没有在这里定义任何客户端事件

@(Html.Kendo().ComboBox()
  .Name("ddlTechnician")
  .Filter("contains")
  .Placeholder("Select Technician...")
  .DataTextField("Text")
  .DataValueField("Value")
  .BindTo(new List<SelectListItem>() {
      new SelectListItem() { Text = "Frank", Value = "1" },
      new SelectListItem() { Text = "Suzie", Value = "2" },
      new SelectListItem() { Text = "Ralph", Value = "3" }
  })
  .Suggest(true)
  .HtmlAttributes(new { style = "width:300px;" }))

当我通过setOptions设置事件处理程序时,我能够在一个kendojquery组合框上重现您的问题,在呈现小部件之后,这不是推荐的方式。相反,您应该使用“bind”方法,如中所示

尝试更改将事件处理程序设置为以下值的代码行:

dictionary.instances.ddlTechnician.bind("change", that.on.change.kendoComboBox);
下面是一个道场,它显示了不同之处:


希望这有帮助。

当我通过setOptions设置事件处理程序时,我能够在Kendo JQuery组合框上重现您的问题,这不是呈现小部件后的推荐方式。相反,您应该使用“bind”方法,如中所示

尝试更改将事件处理程序设置为以下值的代码行:

dictionary.instances.ddlTechnician.bind("change", that.on.change.kendoComboBox);
下面是一个道场,它显示了不同之处:


希望这能有所帮助。

那么你的问题是什么?对不起,伙计,但你一定是在开玩笑!我们有危险吗?我们真的必须“以问题的形式回答”吗?人们难道看不到这里的简单推论吗?这项活动已经进行了两次……而且不应该。对不起,我并不是有意要说些讽刺的话。有时候有一个明确的问题很有帮助。那么你的问题是什么?对不起,伙计,但你一定是在开玩笑!我们有危险吗?我们真的必须“以问题的形式回答”吗?人们难道看不到这里的简单推论吗?这项活动已经进行了两次……而且不应该。对不起,我并不是有意要说些讽刺的话。有时候有一个明确的问题是有帮助的。谢谢你的帮助,伙计:-)奇怪的是…我在剑道论坛上找不到…虽然那可能是我的错谢谢你的帮助,伙计:-)奇怪的是…我在剑道论坛上找不到…虽然那可能是我的错