您好我正在使用jQuery Autocomplete Library(因为没有更好的词)尝试在我一直在处理的页面上实现基本的自动完成功能。我已经设法通过在该页面上基本上使用示例代码的修改版本,通过从同一文件夹中的静态html页面获取json数据来使自动完成工作。这工作得很好。现在我试图从一个python脚本中获取数据,该脚本在谷歌应用引擎上本地化,可以吐出json数据。
以下是页面上原始输入的一些示例数据:
["foo", "bar"]
我已经多种方式打印数据以验证数据格式是否正确(抱歉,我不知道有任何确定的方法来测试它是否是有效的json数据)。
现在代码!这是处理自动完成功能的实际功能:
function suggest(textbox_data){
$(textbox_data).autocomplete({
source : function (request, response)
{
var source_url = "http://localhost:8081/developers/add/jqueryResponse";
//var data = "hello world"
$.ajax({
url: source_url,
dataType: 'json',
success: function (data) {
response(data);
}
});
}
});
}
我将所有内容都放入函数的原因是因为我正在动态生成文本框。为了使一切清晰,这里是添加文本框的行。如果有人真的想要我可以添加文本框genoration的所有代码,但我很确定这不是问题。
$('#buttondiv').append('<div><label>Textbox #'+$counter+'</label><input type="text" name="textbox[]" class="textbox" value="" id="country" onkeyup="suggest(this);"/><div id="testdiv"></div></div>');
现在输入错误消息!当我在Firefox中运行脚本时(Chrome在本地使用$ .ajax功能时是一只母狗)我在尝试访问包含JSON数据的网页时从firebug收到错误:
GET http://localhost:8081/developers/add/jqueryResponse 200 136ms jquery.min.js (line 16)
在文件的第16行,基本上包含脚本中的所有内容,因此它并没有真正缩小范围。无论如何,请帮助!
答案 0 :(得分:0)
您的成功处理程序不完整。查看Demo page.
的源代码成功处理程序应如下所示:
success: function( data ) {
response( $.map( data.geonames, function( item )
{
return {label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,Value: item.name}
}));
}
});