如何让JQuery自动完成与Ajax和JSON一起工作?
我不熟悉JQuery的自动完成功能。我正在努力使此代码正常工作。下面的代码可以在每次有人输入输入字段时正确地执行ajax轮询。但是,它不会自动完成如何让JQuery自动完成与Ajax和JSON一起工作?,jquery,ajax,json,autocomplete,Jquery,Ajax,Json,Autocomplete,我不熟悉JQuery的自动完成功能。我正在努力使此代码正常工作。下面的代码可以在每次有人输入输入字段时正确地执行ajax轮询。但是,它不会自动完成 $(document).ready(function() { $("#search").autocomplete({ source: 'cityajax' }); }); 这是它正成功从服务器中提取的文件。mime/内容类型设置为text/json ['Overland Park','Hiawatha','Columbus','Le
$(document).ready(function() {
$("#search").autocomplete({
source: 'cityajax'
});
});
这是它正成功从服务器中提取的文件。mime/内容类型设置为text/json
['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']
当源代码被设置为javascript本身的内联JSON变量时,同样的事情也可以正常工作。这个问题一定很简单,但我花了一个半小时试图找出问题所在,我遇到了一个障碍。我是否缺少某种必需的参数
编辑:将我的“json”更改为这个有效的json,仍然是相同的问题
{"1": "Overland Park","1": "Hiawatha","1": "Columbus","1": "Lenexa","1": "Pittsburg","1": "Dodge City"}
编辑:再次将我的“json”更改为此
[{"1": "Overland Park"},{"2": "Hiawatha"},{"3": "Columbus"},{"4": "Lenexa"},{"5": "Pittsburg"},{"6": "Dodge City"}]
编辑:把我的“json”改成这个,一切都很好
[{“label”:“Overland Park”},{“label”:“Hiawatha”},{“label”:“Columbus”},{“label”:“Lenexa”},{“5”:“Pittsburg”},{“label”:“Dodge City”}]你使用的方法肯定行不通。我想问你怎么知道数据肯定会到达那里。您是否通过Firebug在XHR中看到它?如果你没有使用插件的远程源代码功能,你怎么称呼它 按照您定义它的方式,没有文件扩展名。因此,它将源代码设置为一个名为cityajax的字符串,这是无效的。如果您的数据源是一个名为cityajax的变量,那么您可以将该变量放在那里而不带引号
将允许您测试数据的有效性。自动完成的简单示例:
$( "#test" ).autocomplete({
source: "search.php"
})
在search.php中
<?php
echo [{"label":"Overland Park"},{"label":"Hiawatha"}]
?>
JSON不是数组,但总是包装在
{…}
中。您需要获取数据,从中解析数组,并将该数组传递给.autocomplete
。尝试以下操作:[{'label':'Overland..},{'label':'Anonymus'}],除了1,2,3 use标签这是在Kohana MVC框架中,没有.php扩展名,因此它是有效的,调用是在Firebug的网络视图中进行的。我将我的“json”改为这个有效的json。{'1':'Overland Park','1':'Hiawatha','1':'Columbus','1':'Lenexa','1':'Pittsburg','1':'Dodge City'}这个JSON不好,试试这个[{'label':'Overland..},{'label':'Anonymous}]最后我的问题是没有有效的JSON,投票给Jsonlist,非常有用。最后我的问题是没有有效的JSON。
var cityajax = ['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']
$(document).ready(function() {
$("#search").autocomplete({
source: cityajax
});
});