具有两个相同“值”的自动完成问题

时间:2011-05-27 21:34:49

标签: javascript jquery arrays hash autocomplete

我正在使用JQuery Autocomplete插件,其中包含l ocal data stored in a array

data = [city1, city2, city3, city1]

用户选择数据元素后,例如city 1,我将其存储在user_input中。我使用用户输入来读取包含城市,州邮政编码和名称的哈希。当用户点击进入时,脚本会在屏幕上显示散列的每个元素。这也很有用:

  $(document).keypress(function(e) {
      if(e.keyCode == 13) {
          var user_input =  $("input#example").val()

            $.each(personinfo,function(key,value){
                if(value['city']== user_input){
                    $('#city').empty().append(value['city']);
                    $('#state').empty().append(value['state']);
                    $('#zip').empty().append(value['zip']);
                    $('#name').empty().append(value['name']);
                }
})

当有两个相同的键时会出现问题。例如,名称"John Doe""Jane Doe",住在同一个城市:city1。因此,city1在数据数组中出现两次,如上所示。

data在此方法中定义:

  var data = new Array();
  $(document).ready(function(){

  $.each(personinfo,function(key,value){
    myarray.push(value['city'])
   });
  });

如何在按键功能中区分上述数组中的city1和city1?

personinfo地图对象:

{"address":"07288 Albertha Station","city":"Littelside","created_at":"2011-05-25T19:24:51Z","id":1,"name":"Jane Doe","state":"Missouri","updated_at":"2011-05-26T21:25:54Z","zip":"75475-9938"},{OBJECT 2}, {OBJECT 3}, .... 

1 个答案:

答案 0 :(得分:1)

正如一些评论所暗示的那样,用相同的密钥修复问题是不可能的:修复它的唯一方法是使用不相同的密钥: - )

我只是将城市和国家结合起来制作钥匙;似乎应该给你一个独特的键集。