0

嗨,我正在使用jQuery 自动完成库(因为没有更好的词)来尝试在我一直在处理的页面上实现基本的自动完成功能。通过基本上使用该页面上示例代码的修改版本,我已经设法通过从同一文件夹中的静态 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);
                }
            });
        }
    });
}

我将所有内容都放入函数的原因是因为我正在动态生成文本框。只是为了让一切清楚,这是添加文本框的行。如果有人真的想要,我可以添加文本框生成的所有代码,但我很确定这不是问题。

$('#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 中运行脚本时(当谈到在本地使用 $.ajax 功能时,Chrome 是一只母狗)我在尝试访问包含 JSON 数据的网页时收到来自 firebug 的错误:

GET http://localhost:8081/developers/add/jqueryResponse 200 136ms   jquery.min.js (line 16)

在文件的第 16 行,基本上包含脚本中的所有内容,因此它并没有真正缩小范围。无论如何,请帮助!

4

1 回答 1

0

您的成功处理程序不完整。查看演示页面的源代码。

成功处理程序应如下所示:

success: function( data ) {

        response( $.map( data.geonames, function( item ) 
{

return {label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,Value: item.name}
                        }));
                    }
                });
于 2012-09-20T04:02:14.213 回答