2016-08-02 122 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)); 
}