防止退格键返回上一页

4
.keydown(function(e){
        alert(e.keyCode);
...

此代码确实会将“退格”按钮的键返回为8。问题是,浏览器会将我带回历史记录!

这是Windows浏览器中最烦人的行为,我只是想用删除和退格键清除列表框值。我讨厌这种行为,在IE和Chrome中完全一样。

有任何想法可以利用退格键吗?

2个回答

12

只需使用preventDefault()

$(document).keydown(function(e){
    if ( e.keyCode == 8 ) e.preventDefault();
});

请注意,这将防止退格键在输入字段中起作用。可以使用以下方法轻松解决此问题:

$(document).keydown(function(e){
    if ( e.keyCode == 8 && e.target.tagName != 'INPUT' && e.target.tagName != 'TEXTAREA') {
        e.preventDefault();
    }
});

好的,我只需要在我的列表框中使用它。但还是谢谢你的建议! - Anonymous
哦,第二件事看起来很整洁。非常感谢!编辑:唯一的问题是它不起作用 - 不知何故不忽略输入。 - Anonymous
是的,我可以在5分钟内设置它。- 这就是它所说的。 - Anonymous
注意:e.target.tagName返回undefined,有没有什么解决方法? - Anonymous
@user1125062 - 应该是 tagName 而不是 tagNmae。我已经修复了。抱歉打错字了。 - Joseph Silber

0

使用preventDefault(),并作为额外的保护措施,您可以使用onbeforeunload事件来警告用户,如果他们离开您的页面


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接