2016-03-31 6 views
0

Ich versuche, jqueryUI Autocomplete in MVC-Projekt zu verwenden. Ich schaue auf die Konsole und festgestellt, dass beim Schreiben von Zeichen in der Eingabe von Autocomplete bekomme ich alle Daten, aber diese Daten nicht in Schlag der Eingabe angezeigt.Warum Autocomplete von jqueryUI Ergebnis nicht anzeigen?

$('#Departure').autocomplete({ 
    source: '@Url.Action("GetCityAndAirport", "Flight", "CityAndAirports")' 
}); 

enter image description here

Antwort

0

Nach http://api.jqueryui.com/autocomplete/#option-source die Antwort vom Server zurückgegeben werden können:

  • Ein Array von Zeichenketten: [ "Choice1", "Choice2" ]
  • Ein Array von Objekten mit Label und Werteigenschaften: [ { label: "Choice1", value: "value1" }, ... ]

Es sieht jedoch so aus, als ob der Server das Array in ein Objekt einwickelt. Wenn der Server ["Value 1", "Value 2"] anstelle von {"obj": ["Value 1", "Value 2"]} zurückgeben kann, sollten Sie die Ergebnisse sehen.

Edit: Eine weitere Option ist die function Form der Quellenoption zu verwenden und die Antwort zu verarbeiten:

$('.selector').autocomplete({ 
    source: function(request, response) { 
     $.getJSON('url', { term: request.term }, function(data) { 
      response(data.obj); 
     }); 
    } 
}); 
1

Das besouse Sie ist sollte ein Array übergeben source autocomplate nach documentation oder Set-Funktion. Sie können entweder Ihre Daten auf der Serverseite ändern oder nur ein Array auf der Clientseite auswählen.

In Ihrem Fall ist es einfacher und sauberer, die Serverseite zu ändern. Antwort sollte wie folgt sein:

[ "Choice1", "Choice2" ] 

nicht:

{ obj: [ "Choice1", "Choice2" ]} 
Verwandte Themen