Jquery 使用剑道ui自动完成中的Json问题

Jquery 使用剑道ui自动完成中的Json问题,jquery,json,kendo-ui,Jquery,Json,Kendo Ui,我使用此文档来使用自动完成搜索 在这个自动完成中,只有名称,而我想使用名称和id $(document).ready(function () { var data = [ {"value":"Albania","id":"1"}, {"value":"Andorra","id":"2"},

我使用此文档来使用自动完成搜索

在这个自动完成中,只有名称,而我想使用名称和id

  $(document).ready(function () {
                 var data = [
                                {"value":"Albania","id":"1"},
                                {"value":"Andorra","id":"2"},
                                {"value":"Armenia","id":"3"},
                                {"value":"Austria","id":"4"},
                                {"value":"Azerbaijan","id":"5"},
                                {"value":"Belarus","id":"6"},
                                {"value":"Belgium","id":"7"},
                                {"value":"Bosnia & Herzegovina","id":"8"},
                            ];                 

                //create AutoComplete UI component
                $("#countries").kendoAutoComplete({
                    dataSource: data,
                    filter: "startswith",
                    placeholder: "Select country...",
                    dataTextField: "value",
                    dataValueField: "value",
                    separator: ", "
                });


            });

此代码正在运行,但当用户选择任何国家/地区名称时,如何向id发出警报?您必须在数组中最后一个元素后删除逗号。现在JavaScript看到最后一个空元素,它不支持.toLowerCase。

1。您需要设置dataValueField=“id”:

2.设置更改事件的处理程序。如果您使用的是MVVM:

onCountryChange = function (e) {
    var selectedCountry = self.AllCountries[e.item.index()];
    alert(selectedCountry.id);
});
答案是

                $("#countries").kendoAutoComplete({
                    dataSource: data,
                    select: onSelect,
                    filter: "startswith",
                    placeholder: "Select country...",
                    dataTextField: "value",
                    dataValueField: "value",
                    separator: ", "

                });
存在事件
select
,我调用函数
onSelect
,即

                function onSelect(e) {
                    var dataItem = this.dataItem(e.item.index());
                    alert(dataItem.id);
                }

不要使用
{“value”:“albana”,“id”:“1”},
使用
{“value:albana,id:1”},
@MIT:如果可能的话,在jsfiddle.net上模拟相同的情况[()
这是您的输入选择权,在其上调用autocomplete。然后只需像这样关联一个更改事件,
.on('change',function()//当值更改时,执行一些操作})
请注意,作者在我的回答后更改了原始问题。最初他问“但它不起作用控制台中有类似于此类型的错误错误:d.toLowerCase不是函数}”);“有小的更改请检查我的答案
                function onSelect(e) {
                    var dataItem = this.dataItem(e.item.index());
                    alert(dataItem.id);
                }