Javascript 谷歌自动完成-禁用箭头键
我正在做一个项目,需要过滤掉从PlacesAPI返回的结果。我是通过隐藏函数来实现的Javascript 谷歌自动完成-禁用箭头键,javascript,jquery,Javascript,Jquery,我正在做一个项目,需要过滤掉从PlacesAPI返回的结果。我是通过隐藏函数来实现的 $(object).hide(); 但是,如果用户使用箭头键滚动浏览结果,结果将显示在输入中 我试图做的是禁用该输入框的箭头键导航 我尝试过使用keydown事件检查,但是箭头键导航仍然有效 $('#search').bind('keydown', function(e) { var key = (e.keyCode ? e.keyCode : e.which);
$(object).hide();
但是,如果用户使用箭头键滚动浏览结果,结果将显示在输入中
我试图做的是禁用该输入框的箭头键导航
我尝试过使用keydown事件检查,但是箭头键导航仍然有效
$('#search').bind('keydown', function(e) {
var key = (e.keyCode ? e.keyCode : e.which);
if(key == 40 || key == 38) {
e.stopPropagation();
return false;
}
return true;
});
有什么我遗漏的吗?我也尝试过使用bindFirst插件-
试试看
保留对禁用功能的引用,并在准备启用时解除绑定
例如
var arrKey = new Array(37, 38, 39, 40);
var disableArrowKeys = function(e) {
if ($.inArray(e.keyCode, arrKey)>=0) {
e.preventDefault();
}
}
$(document).keydown(disableArrowKeys);
// When you are ready to enable, Unbind the function.
$(document).unbind('keydown', disableArrowKeys);
对于所有有同样问题的人,我发现了以下几点 绑定事件在google事件绑定之前激发。所以最终解决我问题的是-
$('#search').bind('keydown', function (event) {
setTimeout(function() {
// do things here
$('.pac-item').removeClass('.pac-item-selected');
event.stopPropagation();
return false;
}, 2);
});
现在它解决了我的问题。因此,用户应该如何选择建议,而不是使用箭头键?使用鼠标或输入键。有一个完全独立的页面供那些无法访问鼠标的人使用。我已经从另一个SO答案中使用了此代码,它不符合我的需要。您想如何自定义?请查看我的上一篇文章。我相信你发布的代码片段可以与之结合使用。