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