触发不同的事件以自动完成选择和键盘输入

时间:2017-03-08 03:47:42

标签: jquery jquery-ui-autocomplete

我在输入字段中使用jquery ui自动完成功能。我使用select事件来触发某些操作,但如果用户使用enter选择某些内容,这也会触发keyup事件。

我想做什么:

$( '.my-input' ).autocomplete( {
    source: availableTags,
    select: function( event, ui ) {
        console.log( 'here goes an action triggered by the selection of an autocomplete suggestion' );
    }
});
$( '.my-input' ).keyup( function( e ) {
    if ( e.keyCode == 13 ) {
        console.log( 'here goes an action triggered by the enter key' );
    }
});

使用此代码时,当我使用enter选择自动完成建议时,将触发由enter键触发的操作。我怎么能避免它?

1 个答案:

答案 0 :(得分:0)

您可以在选择值上检查事件:

$( "#autocomplete" ).autocomplete({
source: availableTags,
select: function(event, ui){
    var key = checkEvent(event);
    if (key == 13)
        alert('Enter key...');
    else 
        alert('other key pressed.');
}
});

function checkEvent(e) {
    if (window.event)
      key = window.event.keyCode;     //IE
    else
      key = e.which;     //firefox

return key;
}