如何在autocomplete()方法上显示Jquery UI自动完成小部件?

时间:2011-04-29 06:57:41

标签: jquery autocomplete jquery-autocomplete jquery-ui-autocomplete

我希望有人可以帮忙解决这个问题,我很难让jQueryUI的自动完成功能与asp中的 $。ajax({})一起使用。 net application。
我可以让它进行ajax调用,得到服务响应和位置列表。
但是当我按下向下箭头键然后在页面上呈现位置列表时,仍然没有显示自动完成列表。
在从web方法获取位置列表后,应立即呈现/显示它。怎么可能呢?

我在jquery网站上使用自动填充功能: http://jqueryui.com/demos/autocomplete/

示例代码

function GetCitiesLikeList(objcity) {    
var cities = "";
        $.ajax({
            type: "POST",
            url: http://localhost/testweb/location.asmx/Getlocations,
            data: "{ City : '" + objcity + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                if (msg.d != null && msg.d != "") {
                    cities = "";
                    cities = msg.d;
                    $("#citilist").autocomplete({
                        source: cities
                    });
                }
                else
                    $("#citilist").attr("autocomplete", "off")
            },
            error: function (xhr, ajaxOptions, thrownError) { return false; }
        }); 
}

3 个答案:

答案 0 :(得分:1)

要显示列表,请致电$('#citilist').trigger("keydown"); 这使得它认为您正在输入citilist输入,并将触发ajax帖子。

答案 1 :(得分:1)

我找到了另一种触发jQuery UI自动完成功能的方法,无需在框中输入内容:

$('#field').autocomplete({
    source: '/path/to/data',
    minLength: 0
});
$('#button').click(function() {
    $('#field').autocomplete('search', '')
});

发送'search'arg会触发搜索功能。第二个参数是发送到/ path / to / data。

的数据处理程序的“术语”

答案 2 :(得分:0)

只有在敲击密钥时才会触发Jquery自动完成,这就是您正在发生的事情。这就是它的设计功能。如果你想自定义它。你应该写自己的逻辑。