5

我有一个剑道自动完成项目:

<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() 不返回数据源中对象的索引并且是“未定义的”。
知道如何在自动完成中选择对象吗?

我还尝试添加一个名为 veh_Transporteur 的全局变量并添加:

change: function (e) {
        veh_TRANSPORTEUR = this.dataItem();
},

但我仍然在 veh_TRANSPORTEUR 中有“未定义”。

4

4 回答 4

4

尝试以下

$("#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);
                    }
                }
于 2016-08-02T19:02:07.913 回答
1

AutoComplete.select() 不会返回当前选择,这会像其他小部件(Grid、TreeView)一样令人困惑。 http://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete#methods-select

不带参数的 .dataItem() 方法应返回 AutoComplete 的选定对象。

示例: http ://dojo.telerik.com/@Stephen/eJonI

于 2016-08-02T15:06:04.353 回答
1

看起来 :

var test = this.dataItem();

不要在 IE 上工作,我在 Firefox 上使用 globals var 尝试了我的解决方案并且它有效......真的不知道为什么我在 IE 上遇到这个问题。

编辑:问题不是来自 IE,我是从一个自动完成到另一个使用选项卡。但是,如果我使用 tab 键或 Enter 键而不选择出现列表中的元素(如果我只使用单词的自动完成),我将传递更改事件,但在我的自动完成中没有选择任何内容,所以我的 var 的内容是“未定义的”。

于 2016-08-03T09:02:50.563 回答
0
$("#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));
}
于 2017-05-02T10:55:47.527 回答