使用JSON的jQuery自动完成不使用" value"或"标签"

时间:2014-09-10 01:57:27

标签: javascript jquery json autocomplete

很抱歉,如果外面的某个地方有一个不错的例子,我一直在寻找好几天并且无法找到解决方案。

从JSON文件收集数据" database.json":

"[{\"id\":\"1\",\"state\":\"Alaska\"},{\"id\":\"2\",\"state\":\"Alabama\"},{\"id\":\"3\",\"state\":\"California\"}]"

这是我最近失败的尝试:

$("#state").autocomplete({
                       source: function( request, response ) {
                       $.ajax({
                           url: "database.json",
                           dataType: "json",
                           data: {term: request.term},
                           success: function(data) {
                                     console.log(data)
                                       response($.map(data, function(item) {
                                       return {
                                           label: item.state,
                                           id: item.id,
                                       };
                                   }));
                               }
                           });
                       },
                       minLength: 2,
                       select: function(event, ui) {
                           $('#state_id').val(ui.item.id);
                       }
                   });

当然是html:

<input type="text" id="state"/>

我不知道从哪里开始,我只想要一个简单的下拉自动完成。如果需要更多信息,请告诉我,我可以提供。

谢谢!

1 个答案:

答案 0 :(得分:1)

在@ArunPJohny的大量帮助下,我能够通过添加

来完成工作
data  = JSON.parse(data); 

低于success: function(data) {

问题是我的JSON被保存为字符串而不是严格的JSON所以我需要先解析它。