2016-05-24 10 views
0

Ich versuche ein Autocomplete-Textfeld zu erstellen, ich habe ein Problem mit meinem jquery. Bitte korrigieren Sie mich, wo ich vermisse.Jquery Autocomplete-Vorschlagsnamen, die als leer angezeigt werden

  1. Namen werden nicht angezeigt in der Vorschlagsliste
  2. Wenn ich den Namen wählen, ich brauche die CityID für die ausgewählte Stadt in html verstecktem Eingabefeld zu platzieren.
  3. Gibt es eine Möglichkeit, den Entwurf der Vorschlagsliste zu ändern.

Hier ist der Code, den ich versucht habe:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>jQuery UI Autocomplete - Default functionality</title> 
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
    <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 

    <script> 
      $(function() { 
      var arr_text = [{"cityid":20,"city":"city1"},{"cityid":21,"city":"city2"},{"cityid":22,"city":"city3"}] 

      $("#txtauto").autocomplete({ 
       source: function (request, response) { 
        var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); 

        var matching = $.grep(arr_text, function (value) { 
         var name = value.city; 
         var id = value.cityid; 

         return matcher.test(name) || matcher.test(id); 
        }); 
        response(matching); 
       } 
      }); 



     }); 
    </script> 
</head> 
<body> 

<div class="ui-widget"> 
     <form> 
      <label for="txtauto">Autocomplete</label> 
      <input id="txtauto" /> 
     </form> 
    </div> 
</body> 
</html> 

Hier ist der Ausgang für meinen Code Here is the output for above code

Antwort

0

Hallo Verwenden Antwort wie unten.

response($.map(matching, function(item) { 
         return { 
          label: item.city, 
          value: item.cityid 
         } 
        }));