正在解析Keyup值。如何在jQuery自动完成中设置这些值?

时间:2011-12-10 14:55:06

标签: javascript jquery ajax json

我正在通过以下链接从它的api中恢复Bing值:

http://api.bing.net/qson.aspx?Query=s&Market=en-us&JsonType=callback&JsonCallback=

现在,当我在keyup上解析结果并将它们附加到正文中时它会起作用,但是当我在jQuery的自动完成上设置结果时它不会。

以下是示例:http://jsfiddle.net/LkVcg/

注意:在小提琴中,我还包括雅虎的自动推荐,它使用相同的方法,以便我可以证明它应该有效。

我做错了什么? 如何将Bing的结果显示在jQuery的自动完成()上?

1 个答案:

答案 0 :(得分:2)

Here是小提琴的工作版本。

有两个关键变化:

  1. 我在“keyup”版本中设置了URL和参数。这修复了505。
  2. 您在“成功”处理程序中引用了“val.key”,而不是“keyup”代码中的“val.Text”。
  3. 因此:

    $("#bing_auto").autocomplete({
        source: function (request, response) {
            console.log("source");
            $.ajax({
                url: "http://api.bing.net/qson.aspx?Query=" + encodeURIComponent(request.term) + "&JsonType=callback&JsonCallback=?",
                dataType: "jsonp",
                /*data: {
                    "Query": request.term,
                    "JsonType": "callback",
                    "JsonCallback" : "?"
                },*/
    
    
                success: function (data) {
                    console.log("success!");
                    var suggestions = [];
                    $.each(data.SearchSuggestion.Section, function (i, val) {
                        console.log("suggestion: " + val.Text);
                        suggestions.push(val.Text);
                    });
                    response(suggestions);
    
                }
            });
        }
    });
    

    (如果您愿意,请取出“console.log()”调用: - )