在 Kendo 自动完成中获取所选对象
Get selected object in Kendo Autocomplete
我有一个 Kendo 自动完成项目:
<input type="text" id="Ac_Transporteur" class="" maxlength="30" required/>
--------------------------------------------------------------------------
$("#Ac_Transporteur").kendoAutoComplete({
dataTextField: "Nom",
//Not interesting code here
dataSource: dsTransporteurs,
suggest: true,
delay: 0
});
我可以从我的数据源 dsTransporteur 中选择我的对象,但我需要获取在自动完成中选择的对象。
我试过了:
var transp = $("#Ac_Transporteur").data("kendoAutoComplete");
var transpSelect = transp.select();
oVehicule._Transporteur = transp.dataItem(transpSelect);
但是 transp.select() 没有 return 数据源中对象的索引并且是 "undefined"。
知道如何在我的自动完成中选择对象吗?
我还尝试添加一个名为 veh_Transporteur 的全局变量并添加了这个:
change: function (e) {
veh_TRANSPORTEUR = this.dataItem();
},
但我在 veh_TRANSPORTEUR 中还有 "undefined"。
AutoComplete.select() 不会 return 当前选择,这与通常对其他小部件(Grid、TreeView)所做的一样令人困惑。
http://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete#methods-select
没有参数的 .dataItem() 方法应该 return 自动完成的选定对象。
尝试以下方法
$("#Ac_Transporteur").kendoAutoComplete({
dataTextField: "Nom",
dataSource: dsTransporteurs,
suggest: true,
delay: 0,
select: onSelect
});
function onSelect(e) {
var dataItem = this.dataItem(e.item.index());
alert(dataItem);
}
}
好像是:
var test = this.dataItem();
不适用于 IE,我在 Firefox 上使用全局变量尝试了我的解决方案并且它有效...真的不知道为什么我在 IE 上遇到这个问题。
编辑:问题不是来自 IE,我是使用选项卡从一个自动完成转到另一个。但是,如果我使用 tab 键或 Enter 键而不选择出现列表中的元素(如果我只使用单词的自动完成)我正在传递更改事件,但我的自动完成中没有选择任何内容,所以我的 var 的内容是 "undefined".
$("#Ac_Transporteur").kendoAutoComplete({
dataTextField: "Nom",
//Not interesting code here
dataSource: dsTransporteurs,
suggest: true,
delay: 0
});
$(document).ready(function () {
var data = $('#Ac_Transporteur').data('kendoAutoComplete');
var dataValue = data.value($("#value").val());
var dataItem = data.dataItems();
var find = dataItem.filter(x => x.Nom === dataValue)
var Transporteur= new Array();
Transporteur = find;
alert(JSON.stringify(Transporteur));
}
我有一个 Kendo 自动完成项目:
<input type="text" id="Ac_Transporteur" class="" maxlength="30" required/>
--------------------------------------------------------------------------
$("#Ac_Transporteur").kendoAutoComplete({
dataTextField: "Nom",
//Not interesting code here
dataSource: dsTransporteurs,
suggest: true,
delay: 0
});
我可以从我的数据源 dsTransporteur 中选择我的对象,但我需要获取在自动完成中选择的对象。
我试过了:
var transp = $("#Ac_Transporteur").data("kendoAutoComplete");
var transpSelect = transp.select();
oVehicule._Transporteur = transp.dataItem(transpSelect);
但是 transp.select() 没有 return 数据源中对象的索引并且是 "undefined"。
知道如何在我的自动完成中选择对象吗?
我还尝试添加一个名为 veh_Transporteur 的全局变量并添加了这个:
change: function (e) {
veh_TRANSPORTEUR = this.dataItem();
},
但我在 veh_TRANSPORTEUR 中还有 "undefined"。
AutoComplete.select() 不会 return 当前选择,这与通常对其他小部件(Grid、TreeView)所做的一样令人困惑。 http://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete#methods-select
没有参数的 .dataItem() 方法应该 return 自动完成的选定对象。
尝试以下方法
$("#Ac_Transporteur").kendoAutoComplete({
dataTextField: "Nom",
dataSource: dsTransporteurs,
suggest: true,
delay: 0,
select: onSelect
});
function onSelect(e) {
var dataItem = this.dataItem(e.item.index());
alert(dataItem);
}
}
好像是:
var test = this.dataItem();
不适用于 IE,我在 Firefox 上使用全局变量尝试了我的解决方案并且它有效...真的不知道为什么我在 IE 上遇到这个问题。
编辑:问题不是来自 IE,我是使用选项卡从一个自动完成转到另一个。但是,如果我使用 tab 键或 Enter 键而不选择出现列表中的元素(如果我只使用单词的自动完成)我正在传递更改事件,但我的自动完成中没有选择任何内容,所以我的 var 的内容是 "undefined".
$("#Ac_Transporteur").kendoAutoComplete({
dataTextField: "Nom",
//Not interesting code here
dataSource: dsTransporteurs,
suggest: true,
delay: 0
});
$(document).ready(function () {
var data = $('#Ac_Transporteur').data('kendoAutoComplete');
var dataValue = data.value($("#value").val());
var dataItem = data.dataItems();
var find = dataItem.filter(x => x.Nom === dataValue)
var Transporteur= new Array();
Transporteur = find;
alert(JSON.stringify(Transporteur));
}