防止退格键在 SELECT 聚焦并打开时导航到上一页



在我匆忙告诉我先搜索之前。我试过了。没有任何运气,在尝试了多种解决方案之后。

这个链接看起来好像应该有效,但它没有。堆栈溢出链接可防止退格

我尝试使用该脚本。我也尝试自己抓住钥匙(使用keyup, keydown, keypress)和returning false, preventDefault, stopPropagation等。似乎什么都不起作用。

捕获关键事件确实会阻止它在任何其他元素聚焦或只是被聚焦的主体时向后导航。这有帮助,但不能解决我的问题。

我找到了另一种使用没有jquery的纯javascript的解决方案,它具有相同的效果(当选择聚焦和打开时仍然导航)。

如果用户选择一个选项,然后按退格键,它不会向后导航,但由于某种原因,如果 SELECT 仍然打开,它会引导他们离开页面。

我考虑过的一种解决方案是使用 body onunload 事件来提示用户是否要离开页面,但是当他们提交表单或单击页面上的链接时,我必须处理这个问题,这不是一个理想的解决方案。

当前代码(许多不同的尝试):

$(document).on('keyup keydown keypress', function(e){
    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
    if(key == 8){
        console.log('backspace');
        e.preventDefault();
        e.stopPropagation();
        return false;
    } else {
        console.log('keypress');
    }
});

任何帮助都非常感谢。谢谢。

[编辑] 我正在使用谷歌浏览器版本 48.0.2564.116 m

我也有类似的问题;我不确定为什么,但是$(文档)选择器没有捕获选择元素。尝试('*').on('keydown', function(e){...});,这对我有用。

最新更新