【问题标题】:How to make a autosuggest using these json data如何使用这些 json 数据进行自动建议
【发布时间】:2017-10-15 18:33:52
【问题描述】:

我试图从第 3 方 API 链接加载 JSON 数据,在该链接中我可以将关键字作为城市名称传递。 像 Keywords=newyork 并基于该关键字,它给了我一个城市或地区数据列表,如下所示:

{
"account":null,
"accountId":0,
"accountType":0,
"accountProfile":0,
"unreadMessages":0,
"database":"dbname",
"entity":"geo",
"method":"wSearchCity",
"result":1,
"message":null,
"data":[
  {
    "id": "145086",
    "name": "New York City, NY"
  },
  {
    "id": "99600",
    "name": "Newport News, VA"
  },
  {
    "id": "139934",
    "name": "Newark, NJ"
  },
  {
    "id": "39964",
    "name": "New Orleans, LA"
  },
  {
    "id": "108279",
    "name": "New Haven, CT"
  },
  {
    "id": "13073",
    "name": "Newark, DE"
  },
  {
    "id": "139922",
    "name": "New Brunswick, NJ"
  },
  {
    "id": "119774",
    "name": "New Bedford, MA"
  },
  {
    "id": "63726",
    "name": "New Bern, NC"
  },
  {
    "id": "108261",
    "name": "New Britain, CT"
  }
]
}

现在我想创建一个输入字段,它会在输入城市名称时从这个 JSON 数据中为我提供运行时名称。

我尝试了许多在 google 和 stackoverflow 上可用的方法,但没有任何帮助。 请给我一些想法。

【问题讨论】:

    标签: jquery json ajax autocomplete autosuggest


    【解决方案1】:

    var json={"account":null,"accountId":0,"accountType":0,"accountProfile":0,"unreadMessages":0,"database":"dbname","entity":"geo","method":"wSearchCity","result":1,"message":null,"data":[{"id": "145086","name": "New York City, NY"},{"id": "99600","name":"Newport News, VA"},{"id": "139934","name": "Newark, NJ"},{"id": "39964","name": "New Orleans, LA"},{"id": "108279","name": "New Haven, CT"},{"id": "13073","name": "Newark, DE"},{"id": "139922","name": "New Brunswick, NJ"},{"id": "119774","name": "New Bedford, MA"},{"id": "63726","name": "New Bern, NC"},{"id": "108261","name": "New Britain, CT"}]};
    
    $("input[type='text']").on("keyup",function(){
      var Val=$(this).val();
      $("span").empty();
      $(json.data).each(function(key,value){
        if ((value.name).search(Val) != -1) 
         $("span").append(value.name + " | "+value.id).append("<br>");
       });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" />
    <br>
    <span></span>

    【讨论】:

    • 非常感谢您的解决方案。但是,如果我输入“N”,它会给我价值并自动提示我,但如果我输入 New,自动提示就会变成空的。
    • 不客气。但是我对其进行了测试,并且正确地像图片一样工作。 ibb.co/byYRgR
    • 对我来说,它不像您发送的屏幕截图那样工作。不知道为什么。与我的本地主机相同,与代码 sn-p 相同。
    • 请在其他浏览器中查看
    • 等一下测试其他方法
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2016-12-20
    • 2023-03-24
    • 2019-05-01
    • 2016-10-16
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    相关资源
    最近更新 更多