2016-08-02 84 views
3

获得选择的对象我有一个剑道自动完成项目:在剑道自动完成

<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。

回答

0

看来:

var test = this.dataItem(); 

不要在IE浏览器,我想我对Firefox的全局变量VAR解决方案它的工作...不知道为什么我在IE上有这个问题。

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

0

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

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

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

+0

我试过这个: 'var transp = $(“#Ac_Transporteur”)。data(“kendoAutoComplete”); oVehicule._Transporteur = transp.dataItem();' 但我在oVehicule._Transporteur中得到的是“未定义”。 –

+0

你的例子不起作用,它返回undefined。 – EasyE

2

请尝试以下

$("#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); 
        } 
       } 
+0

我需要在外部函数中获取数据,以便在弹出窗口中获取许多Autocompletes和dropdownLists的数据,因此我无法使用onSelect函数,可以吗? 我试图使用item.index()像这样:'oVehicule._Transporteur = transp.dataItem(transp.item.index());'但我得到一个异常告诉我,“索引”不受支持 –

+0

你可以只需使用var value = $(“#Ac_Transporteur”).val();在“自动填充”字段中获取输入的值。 – Vijai

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)); 
}