【问题标题】:jQuery UI Autocomplete: Enter to completejQuery UI 自动完成:输入完成
【发布时间】:2011-06-02 19:51:46
【问题描述】:

使用jQuery autocomplete,是否可以使第一个项目自动突出显示,并在用户点击输入时填充,当他们退出输入时(输入失去焦点)?

我找到的最接近的是this,但它会在失去焦点时自动完成。

【问题讨论】:

    标签: jquery jquery-ui autocomplete


    【解决方案1】:

    我认为我有一个可行的解决方案 - 不会破坏现有行为 - 通过扩展 $.ui.autocomplete覆盖 _suggest 方法。

    $.widget('ui.myAutocomplete', $.extend({}, $.ui.autocomplete.prototype, {
        _suggest : function(items) {
            // Call ui.autocomplete's parent method
            $.ui.autocomplete.prototype._suggest.call(this, items);
    
            // Find the first list item
            var item = this.menu.element.children()[0];
    
            // Make this item active.
            // An event is expected so a fake one is passed as a parameter.
            this.menu.activate(new jQuery.Event('null.event'), $(item));
        }
    }));
    

    您现在可以像使用$.ui.autocomplete 一样使用新的子类$.ui.myAutocomplete

    $(function() {
        var source = [
            'test 1'
            ,'test 2'
            ,'test 3'
        ];
    
        $('#selector')
            .myAutocomplete({
                source : source
            });
    });
    

    【讨论】:

    • 啊,但是如果菜单已打开并且您将其移开,它仍会自动完成,因为有一个项目处于活动状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2011-05-31
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多