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

问题描述:

我在输入字段中使用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键,当我使用输入选择自动完成建议被触发触发。我怎么能避免它?

您可以检查选择值的事件:

$("#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; 
} 
+0

感谢您的回答,但实际上我需要相反:检查keyup事件中,如果它是一个简单的回车按下输入或者点击输入压选择一些东西。 – fksr86