我是第一次接触JQuery的自动完成功能。我正在尝试让这段代码正常工作。下面的代码在每次有人在输入字段中键入内容时正确地执行一次ajax轮询。但是,它不会下拉自动完成。
$(document).ready(function() {
$("#search").autocomplete({
source: 'cityajax'
});
});这是它从服务器成功拉取的文件。mime/内容类型设置为text/json。
['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']当在javascript本身中将实际源代码设置为内联JSON var时,同样可以正常工作。这个问题一定是愚蠢而简单的,但我花了一个半小时试图找出问题所在,但我遇到了一个障碍。我是否遗漏了某种必需的参数?
编辑:将我的"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":“匹兹堡”},{"label":"Dodge City"}
发布于 2011-06-18 01:31:42
你使用的方法肯定是行不通的。我会问你是如何知道数据一定会到达那里的。您是否通过Firebug在XHR中看到了它?如果你没有使用插件的远程源功能,你将如何调用它?
按照您定义它的方式,没有文件扩展名。因此,它将源设置为一个名为cityajax的字符串,这是无效的。如果您的数据源是一个名为cityajax的变量,那么您可以将该变量放在不带引号的位置。
Jsonlint将允许您测试数据的有效性。
发布于 2011-06-18 01:44:10
自动完成的简单示例:
$( "#test" ).autocomplete({
source: "search.php"
})在search.php中
<?php
echo [{"label":"Overland Park"},{"label":"Hiawatha"}]
?>如果您想要本地搜索,而不是Ajax,请使用以下代码
var cityajax = ['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']
$(document).ready(function() {
$("#search").autocomplete({
source: cityajax
});
});https://stackoverflow.com/questions/6389428
复制相似问题