触发不同的事件自动完成选择和键入输入
问题描述:
我在输入字段中使用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;
}
感谢您的回答,但实际上我需要相反:检查keyup事件中,如果它是一个简单的回车按下输入或者点击输入压选择一些东西。 – fksr86