什么是一个好的jquery / javascript方法来防止用户使用向上和向下箭头键在下拉框中选择选项(即强制用户只使用鼠标选择菜单选项)?谢谢!
答案 0 :(得分:11)
但如果你是:
$('select').on('keydown', function(e){
if(e.keyCode === 38 || e.keyCode === 40) { //up or down
e.preventDefault();
return false;
}
});
答案 1 :(得分:0)
FOR LATEST FIREFOX& CHROME (IE是谁?; - )
我已经调整了一些代码来模仿根据需要禁用向上和向下箭头键。我必须为我的应用程序执行与arrowUp / pageUp和arrowDown / pageDown键相似的操作,以便允许自定义键盘导航(我为垂直菜单导航保留了arrowLeft / arrowRight键功能)。请注意,我应用了一个setTimeout,这似乎是Firefox(最新)所需要的:
$(document).on('keydown', 'select', function (e) {
var optsel = $(this).find('option:selected').val();
if ( (e.which == 38 || e.which === 40) ) {
setTimeout(function(){$('select option[value="' + optsel +'"]').prop("selected", true)}, 0);
}
});
诀窍是将选择菜单中选择的最后一个值保存为变量,然后根据Firefox的要求(至少)使用setTimeout方法调用它。