【问题标题】:Issue showing Autocomplete results Jquery显示自动完成结果 Jquery 的问题
【发布时间】:2012-04-06 10:22:41
【问题描述】:

我有这个脚本,它以以下格式返回查询结果。 例如查询“fb”,结果如下

 ["fb",["fb","fbi","fbi most wanted","fbi jobs","fb banners","fbook","fb covers","fbanners","fbisd","fbop",],[],[]]

我正在使用以下 Jquery 代码

$( "#city" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "s.php",
                dataType: "json",
                data: {
                    "q" : request.term
                },
                success: function( data ) {
                    response(data[1]);
                }
            });
        },
        minLength: 2
    });
});

它没有显示结果。 你能纠正我吗,我哪里错了!

【问题讨论】:

  • 首先,JSON 是错误的(额外的逗号)。 jQuery 自动完成小部件将失败。另外,你能解释一下这两个空 [] 是干什么用的吗?

标签: jquery json jquery-ui jsonp


【解决方案1】:

http://jsfiddle.net/zFdWZ/

看来:您的响应数据实际上等于 ["fb"]。

为什么?

http://jqueryui.com/demos/autocomplete/查看预期的数据格式

来自本地数据的数据,一个url或一个回调可以分为两种 变种:

An Array of Strings:
[ "Choice1", "Choice2" ]
An Array of Objects with label and value properties:
[ { label: "Choice1", value: "value1" }, ... ]

【讨论】:

  • 你认为它与出现在数组最后一个元素末尾的逗号有关吗? ["fb",["fb","fbi","fbi most Wanted", "fbi 工作","fb 横幅","fbook","fb 封面","fbanners","fbisd","fbop",],[],[]];
  • 你可以自己试试:jsfiddle.net/yXFBL && jsfiddle.net/8LzTk
  • 如你所见,i与逗号无关,相反,自动完成忽略最后一个逗号~
  • jQuery-ui 自动完成使用 $.parseJSON 来解析服务器发送的数据,如果存在额外的逗号,它将失败
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-10
相关资源
最近更新 更多