2016-08-02 14 views
3

ich eine Kendo automatischen Vervollständigung Artikel habe:Get Objekt in Kendo automatischer Vervollständigung ausgewählt

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

Ich habe kein Problem meine Objekte aus meiner Datenquelle dsTransporteur Auswahl, aber ich brauche das Objekt zu erhalten, die in der Autovervollständigung aktiviert ist.
ich versucht, dieses:

var transp = $("#Ac_Transporteur").data("kendoAutoComplete"); 
var transpSelect = transp.select(); 
oVehicule._Transporteur = transp.dataItem(transpSelect); 

aber transp.select() Sie den Index des Objekts in der Datenquelle nicht zurück und ist "undefined".
Irgendeine Idee, wie ich das Objekt in meinem Autocomplete ausgewählt bekommen kann?

Ich habe auch versucht dies eine globale Variable mit Namen veh_Transporteur und fügte hinzu:

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

Aber ich immer noch „unbestimmt“ in veh_TRANSPORTEUR.

Antwort

0

Es scheint, dass:

var test = this.dataItem(); 

funktionieren nicht auf IE, habe ich versucht, meine Lösung mit dem Globals var auf Firefox und es hat funktioniert ... Ich weiß nicht, warum ich dieses Problem auf IE habe.

EDIT: Das Problem kam nicht von IE, ich ging von einem Autocomplete zu einem anderen mit Registerkarte. Aber wenn ich die Tabulatortaste oder die Eingabetaste benutze, ohne das Element in der erscheinenden Liste auszuwählen (wenn ich nur die automatische Vervollständigung des Wortes verwende), gebe ich das Änderungsereignis ein, aber es ist nichts in meiner automatischen Vervollständigung ausgewählt, Also der Inhalt meiner Var ist "undefiniert".

0

AutoComplete.select() gibt die aktuelle Auswahl nicht zurück, was für die anderen Widgets (Grid, TreeView) normalerweise verwirrend ist. http://docs.telerik.com/kendo-ui/api/javascript/ui/autocomplete#methods-select

Die .dataItem() -Methode ohne Parameter sollte das ausgewählte Objekt für eine AutoVervollständigen zurückgeben.

Beispiel: http://dojo.telerik.com/@Stephen/eJonI

+0

Ich versuchte dies:. 'var transp = $ ("# Ac_Transporteur") Daten ("kendoAutoComplete"); oVehicule._Transporteur = transp.dataItem(); ' aber was ich in oVehicule._Transfereur bekomme ist" undefined ". –

+0

Ihr Beispiel funktioniert nicht und gibt undefined zurück. – EasyE

2

Versuchen Sie, die folgende

$("#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

Ich muss die Daten in einer externen Funktion erhalten, um die Daten von vielen Autocompletes und Dropdown-Listen in einem Pop-up zu bekommen, so dass ich die onSelect-Funktion nicht verwenden kann, kann ich? Ich habe versucht, die item.index() wie folgt zu verwenden: 'oVehicule._Transfereur = transp.dataItem (transp.item.index());' aber ich bekomme eine Ausnahme, die mir sagt, dass "Index" nicht unterstützt wird –

+0

Sie können Benutze einfach var value = $ ("# Ac_Transporteur"). val(); um den eingegebenen Wert in das Autocomplete-Feld zu bekommen. – 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)); 
}