2016-05-24 2 views
0

Im пытается создать текстовое поле автозаполнения, у меня проблема с моим jquery. Пожалуйста, поправьте меня там, где отсутствует.JQuery Autocomplete имена предложений, отображаемые как пустые

  1. Название не отображается в списке предложений
  2. Когда я выбираю имя, мне нужно поместить CityId для выбранного города в HTML скрытого поля ввода.
  3. Есть ли способ изменить дизайн списка предложений.

Вот код, я пробовал:

<!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> 

Вот результат для моего кода Here is the output for above code

ответ

0

Привет Использование ответа, как показано ниже.

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