4

正如您在http://jsfiddle.net/hn838/4/中看到的那样, 'click' 对于自动填充器来说工作正常,但我也想在输入键按键上触发相同的代码,但它对我不起作用。我的代码都在这里。点击 :

$('.ui-autocomplete').on('click', '.ui-menu-item', function(){
    $('.college').trigger('click');
});

密钥:

 $('.ui-autocomplete').on('keypress', '.ui-menu-item', function(e){
            if (e.which == 13) {
                         e.preventDefault();
            $('.college').trigger('click');
           }
        });

我想 $('.college').trigger('click');执行click并输入keypress. 点击工作正常,但按键不工作。任何线索?

4

2 回答 2

6

您可以向select事件添加一个函数,而不是绑定到键事件:

select: function(){
    $('.college').trigger('click');
}

这样它只会在用户实际选择自动完成值时触发。

http://jsfiddle.net/louisbros/hn838/10/

于 2013-04-27T10:22:26.050 回答
2

ui-autocomplete你的小提琴里面没有类。所以我假设它看起来像这样:

<input type = 'text' class = 'search ui-autocomplete' />

而且ui-menu-item你的小提琴中没有课程,所以你应该这样做:

$('.ui-autocomplete').on('keypress', function(e){
    if (e.which == 13) {
        e.preventDefault();
        $('.college').trigger('click');
    }
});

更新小提琴


如果你想使用从 jQuery UI 自动生成的类,你可以这样做:

$('.ui-autocomplete-input').on('keypress', function(e){
    if (e.which == 13) {
        e.preventDefault();
        $('.college').trigger('click');
    }
});

小提琴

于 2013-04-27T10:13:09.027 回答