jQuery UI自动完成:输入完成

时间:2010-12-29 20:31:42

标签: jquery jquery-ui autocomplete

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

我发现的最接近的是this,但是会在失去焦点时自动填充。

1 个答案:

答案 0 :(得分: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.myAutocomplete一样使用新的子类$.ui.autocomplete

$(function() {
    var source = [
        'test 1'
        ,'test 2'
        ,'test 3'
    ];

    $('#selector')
        .myAutocomplete({
            source : source
        });
});