Bootstrap typeahead存储更多值

时间:2013-06-06 16:29:20

标签: javascript jquery html json twitter-bootstrap

所以我有一个bsic typeahead设置,在那里我搜索城市名称,但是选择我也需要lat和long那个城市,所以我可以把它发送到后端。

  $('.typeahead').typeahead({
    minLength : 3,
    source : function(typeahead,query){
        return $.ajax({
        url: appUrl+"/"+query,
        dataType: 'json',
        success: function(data)
        {
          var obj = $.parseJSON(data);
          var locations = [];
          $(data).each(function(index,value){
            locations.push(value.City);
          });
          return typeahead.process(locations);
        }
      });
    },
    onselect : function(item){

      console.log(item);
    }
  });

所以我从JSon收到lat和long但是我不知道如何将它们存储在源数组中,所以我可以在onselect操作中使用它们,任何提示?

1 个答案:

答案 0 :(得分:0)

解决方案是创建另一个存储数据的对象,以便以后可以访问它。

 var locationsData = {};
  $('.typeahead').typeahead({
    minLength : 3,
    source : function(typeahead,query){
        return $.ajax({
        url: appUrl+"/"+query,
        dataType: 'json',
        success: function(data)
        {
          var obj = $.parseJSON(data);
          var locations = [];
          $(data).each(function(index,value){
            locations.push(value.City);
            locationsData[value.City] = {'Lat' : value.Latitude, 'Long' : value.Longitude};
          });
          return typeahead.process(locations);
        }
      });
    },
    onselect : function(item){

      console.log(item);
      console.log(locationsData);
      console.log(locationsData[item].Lat);
    }
  });
});