【问题标题】:autocomplete - show the whole list自动完成 - 显示整个列表
【发布时间】:2012-03-12 20:32:35
【问题描述】:

我有这个代码:

var myList = [ "Avellino", "Enna", "Frosinone" ];

myInput.autocomplete({
    source: function(request, response) {            
        var data = $.grep(myList, function(value) {
            return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
        });            

        response(data);
    },        
    appendTo: "#myDiv"
});

我想,当我点击输入框时,显示myList的所有元素列表(具有相同的自动完成框选择值)。

我想我需要一个第三方处理程序,例如:

myInput.focus(function () {

});

但我不知道如何与自动完成对话。有什么想法/解决方案吗?

【问题讨论】:

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


    【解决方案1】:

    @jasonlfunk 已经完成了一半——您必须在 focus 上调用自动完成小部件上的 search 才能使其工作:

    var myList = [ "Avellino", "Enna", "Frosinone" ];
    
    $('#myInput').autocomplete({
        minLength: 0,
        source: function(request, response) {            
            var data = $.grep(myList, function(value) {
                return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
            });            
    
            response(data);
        }
    }).focus(function () {
        $(this).autocomplete("search", "");
    });
    

    示例: http://jsfiddle.net/BRDBd/

    【讨论】:

    • 实际上,我的解决方案更好,因为它可以处理您键入内容、点击离开、然后再次聚焦元素的情况......但这不是比赛。
    【解决方案2】:

    查看自动完成插件的minLength 选项。将其设置为零应该可以满足您的要求。

    var myList = [ "Avellino", "Enna", "Frosinone" ];
    
    myInput.autocomplete({
        minLength: 0,
        source: function(request, response) {            
            var data = $.grep(myList, function(value) {
                return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
            });            
    
            response(data);
        },        
        appendTo: "#myDiv"
    }).focus(function(){
        $(this).autocomplete("search",$(this).val());
    });​;
    

    【讨论】:

    • 嗯,不行! jsfiddle.net/Ek8nS如果我点击输入我看不到列表..
    • 完美答案,谢谢老兄:)
    猜你喜欢
    • 2012-03-10
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2017-07-23
    • 2019-07-23
    • 1970-01-01
    相关资源
    最近更新 更多