Javascript 如何禁用上下箭头键

Javascript 如何禁用上下箭头键,javascript,jquery,Javascript,Jquery,我正在尝试禁用选择列表字段的上下箭头功能。我已搜索并尝试了所有选项,但无法禁用。当用钥匙发出警报时,它正在工作,但当我尝试禁用时,它不工作。是否有与浏览器相关的更新 我的Chrome版本:89.0.4389.128(官方版本)(64位) 最后一段代码是这样的。它不会阻止向上或向下箭头指向列表,但会阻止按enter键从列表中进行选择。总比什么都没有好。我还有一个问题要问 $('.form-contact,.form-company,.form-address,.form-postcode,.fo

我正在尝试禁用选择列表字段的上下箭头功能。我已搜索并尝试了所有选项,但无法禁用。当用钥匙发出警报时,它正在工作,但当我尝试禁用时,它不工作。是否有与浏览器相关的更新

我的Chrome版本:89.0.4389.128(官方版本)(64位)

最后一段代码是这样的。它不会阻止向上或向下箭头指向列表,但会阻止按enter键从列表中进行选择。总比什么都没有好。我还有一个问题要问

 $('.form-contact,.form-company,.form-address,.form-postcode,.form-phone,.form-email').on('keydown', (e) => {
    if (e.target.localName != 'input') {   // if you need to filter <input> elements
        switch (e.keyCode) {
            case 38: // up
            case 40: // down
                e.preventDefault();
                break;
            default:
                break;
            }
        }
    }, {
        capture: true,   // this disables arrow key scrolling in modern Chrome
        passive: false   // this is optional, my code works without it
    });
$('.form contact、.form company、.form address、.form postcode、.form phone、.form email')。on('keydown',(e)=>{
if(e.target.localName!=“input”){//如果需要筛选元素
开关(如钥匙代码){
案例38://以上
案例40://向下
e、 预防默认值();
打破
违约:
打破
}
}
}, {
capture:true,//这将禁用现代Chrome中的箭头键滚动
被动:false//这是可选的,我的代码在没有它的情况下工作
});
这可能会有帮助:

window.addEventListener("keydown", function(e) {
    if(["Space","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].indexOf(e.code) > -1) {
        e.preventDefault();
    }
}, false);

在这里找到它

只需使用
e.preventDefault()
。不确定当您在
e
中看到事件时,为什么要转到视图…谢谢您的回复。我尝试了e.preventDefault(),但它也不起作用;这个结构是一个论坛,我试着这样做。现在我正在更新代码,它仍然是这样$(function(){$('.form contact').on('keyup',function(e){if(e.keyCode==38 | | | e.keyCode==40){//up或down//alert(e.keyCode)e.preventDefault();return false;}});这回答了你的问题吗?不幸的是,事实并非如此。正常情况下,在主屏幕中是的,它正在工作,但当谈到jquery自动完成选择文本字段时,它不工作。我仍然可以使用箭头键。我可以捕获键并在控制台日志中看到它们,但无法阻止在列表中上移或下移。它不会阻止用户在列表中上下移动,但会阻止使用enter键进行选择。所以它解决了我的部分问题。但我的正确需求是不要在选择列表中使用上下箭头按钮。(这是type=“text”,我们正在使用自动完成插件)我现在已经更新了这个问题。ı无法在此处写入全部代码。顺便说一下,谢谢你的回答。它适用于主屏幕,但我有一个jquery自动完成字段,如(“.form contact”)。不幸的是,它在选择字段中不起作用。$('.form contact').on(“keydown”,函数(e){console.log(e.keyCode);if([38,40].indexOf(e.keyCode)>-1){console.log(e.keyCode+“我们在”);e.preventDefault();return false})它们是文本区域tho,但对于选择列表来说可能是相同的逻辑。希望能有帮助
window.addEventListener("keydown", function(e) {
    if(["Space","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].indexOf(e.code) > -1) {
        e.preventDefault();
    }
}, false);