2017-11-13 2 views
0

Ich benutze selectize js, um eine Suchfunktion zu haben und lässt den Benutzer mehrere Elemente basierend auf der Suche auswählen. Mein Problem ist, dass die Daten korrekt abgerufen werden, aber die Daten werden vom Steuerelement nicht angezeigt. Hier ist, wie ich es mache.Wählen Sie keine Daten von Ajax Anruf anzeigen

Die Steuerung:

<label>Skills Required</label> 
<select id="skills-ddl" class="form-control" placeholder="Search skills.." multiple ></select> 

Js:

$(function() { 
    var $select = $('#skills-ddl').selectize({ 
     valueField: 'Id', 
     labelField: 'Name', 
     load: function (query, callback) { 
      $.ajax({ 
       url: '/ClientProjects/GetSkills?keyword=' + encodeURIComponent(query), 
       success: function (response) { console.log(response); $select.options = response; callback(response); } 
      }); 
     } 
    }); 

    var selectize = $select[0].selectize; 

}); 

Hier ist ein Screenshot der Daten gibt es: enter image description here

Wenn ich Backspace drücken, wird der Suchtextfeld leer machen die Das vorherige Ergebnis wird angezeigt. enter image description here

EDIT:

Hier ist, wie meine Antwortdaten wie folgt aussehen:

enter image description here

+0

posten Sie bitte Ihr 'response' Objekt, das Sie in Erfolg oder Dummy-Daten mit ähnlicher Struktur von 'response'-Objekt bekommen. –

+0

Hat meinen Beitrag bearbeitet. – ljpv14

Antwort

0

Ich glaube, Sie fehlen searchField Attribut, aufgrund derer sie nicht in der Lage zu verstehen, welches Attribut es in Ihrem Drop-Down zu zeigen hat, wenn Sie in es eingeben.

Versuchen Sie, searchField: 'Name' nach labelField: 'Name', hinzuzufügen, die die Filter-Namen in der Dropdown-Liste geben wird.

Ihr js-Code sollte wie folgt aussehen. Hoffe, es wird für Sie funktionieren

+0

Ich kann nicht glauben, dass ich das verpasst habe. Vielen Dank! – ljpv14

Verwandte Themen