2014-11-12 4 views
1

у меня есть две проблемы с этим кодом:автозаполнения с данными JSon

json example: 

{"json_list": [{"label": "Porto Rico", "value": 33}, {"label": "Portugal", "value": 32}]} 

$("#user_country_name").autocomplete({ 
    source : function(request, response) { 
     $.getJSON("https://stackoverflow.com/users/autocomplete/" + request.term, function(data) { 
      response(data.json_list); 
     }); 
    }, 
}); 

Во-первых, когда я выбрать страну, выбранное значение в поле ввода должно быть меткой, а не значение. Потому что пользователь должен видеть страну, а не идентификатор.

Во-вторых, как я могу заполнить скрытое поле $("#user_country_id") по идентификатору выбранной страны?

ответ

1

Используйте select метод

select: function(event, ui) { 
    event.preventDefault(); 
    $("#user_country_name").val(ui.item.label); 
} 
+0

Я не знаю точно, где я должен поставить этот метод в моем примере. – user2990084

+0

После исходного блока – elzi

+0

Именно то, что я ищу. Благодарю. – user2990084

-1

Что вам нужно сделать, это разобрать ответ json. если у вас возникли проблемы с получением доступа, используйте console.log().

$("#w-arrival-search").autocomplete({ 
     select: function (e, ui) { 
      $("#w-arrival-search").val(ui.item.label); 
      return false; 
     }, 
     minLength: 3, 
     source: function (request, response) { 
      $.ajax({ 
       url: 'http://localhost:8080/mvn/autocomplete', 
       data: request, 
       success: function (data) { 
        var ParsedObject = $.parseJSON(data); 
        response($.map(ParsedObject, function (item) { 
         var results = item.iata_code + " - " + item.city_name; 
         return { 
          label: results 
         }; 

        })); 
       } 
      }); 
     } 
    }); 
Смежные вопросы