在我急于告诉我先搜索之前..我已经尝试过了。没有任何运气,并且在尝试了多种解决方案之后。
此链接看起来应该有效,但实际上无效。 Stackoverflow link to preventing backspace
我尝试使用该脚本。我还尝试自己捕获按键(使用keyup、keydown、keypress
)并返回 false、preventDefault、stopPropagation
等。似乎没有任何效果。
捕获关键事件确实可以防止它在任何其他元素获得焦点或只是主体获得焦点时向后导航。这有帮助,但不能解决我的问题。
我找到了另一个使用纯 JavaScript 而不使用 jquery 的解决方案,它具有相同的效果(当选择焦点并打开时仍然导航)。
如果用户选择一个选项,然后按退格键,它不会向后导航,但由于某种原因,如果 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');
}
});
真诚地感谢任何帮助。谢谢。
[编辑]我使用的是 Google Chrome 版本 48.0.2564.116 m
最佳答案
我也遇到过类似的问题;我不知道为什么,但 $(document) 选择器没有捕获选择元素。
尝试 ('*').on('keydown', function(e){...});
,这对我有用。
关于javascript - 当 SELECT 获得焦点并打开时,防止退格键导航到上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35638927/