Kendo Combobox Change事件发生两次

时间:2016-09-01 15:32:32

标签: javascript jquery kendo-ui kendo-combobox

我在改变事件中使用了Kendo Combobox我使用Jquery Ajax调用控制器操作。第一次在选择Combobox中的任何项目时,Action被调用,我得到了所需的数据。 但是在ComboxBox焦点输出(当我点击屏幕上的任何位置时)正在调用相同的动作。 我的剑道组合框如下:

$("#Number").kendoComboBox({
                        dataTextField: "NUM",
                        dataValueField: "ID",
                        dataSource: new kendo.data.DataSource({
                            transport: {
                                read: {
                                    url: ResolveUrl("/CreateMaintainAnalysis/GetAnalysisNumbers/"),
                                    type: "POST",
                                    dataType: "json",
                                    data: function () {
                                        return {
                                            Number: $("#Number").data("kendoComboBox").input.val()
                                        };
                                    }
                                },

                            },
                            requestEnd: function (e) {
                                if (WebApp.CLAF.LoggedInUser.Info.IS_ANALYST == 'Y') {
                                    e.response.unshift({ ID: -1, NUM: 'Create New Analysis' });
                                }
                                else {
                                    e.response.unshift({ ID: -2, NUM: 'Select' });
                                }
                            },
                            serverFiltering: true
                        }),
                        filter: "startwith",
                        suggest: true,
                        minLength: 5,
                        highlightFirst: true,
                        index:0,
                        change: function (dataItem) {
                              $.ajax({
                                 type: "POST",
                                 data: { ID: ID },
                                 url: ResolveUrl("/Analysis/Data"),
                                 success: function (result) {
                                 },                 
                                });
                         }
                      });

这真是非常奇怪的行为,我无法赶上它。

1 个答案:

答案 0 :(得分:0)

内部数据源请添加 autoBind: false,默认情况下为 true,并且通常这是在任何焦点输入/输出或点击事件时从内部发送额外 API 调用的原因。