防止退格从当前表单返回

时间:2013-01-24 15:10:21

标签: javascript html

我正在使用以下JavaScript函数来阻止退格返回。

function preventBackspace(e) {
    var evt = e || window.event;
    if (evt) {
        var keyCode = evt.charCode || evt.keyCode;
        if (keyCode === 8) {
            if (evt.preventDefault) {
                evt.preventDefault();
            } else {
                evt.returnValue = false;
            }
        }
    }
}

我已将onkeydown="preventBackspace();"添加到所有文本框中。

我有两个单选按钮和两个文本框,选中后会使另一个文本框只读。点击退格键时,它不会返回页面,但我无法从可编辑的文本框中删除。请建议。谢谢!

1 个答案:

答案 0 :(得分:2)

当用户当前专注于文本框时,退格键会导致浏览器返回。文本框中的退格键用于删除某个字符 - 由于您已添加preventDefault(),因此您可以停止该行为的发生。

如果您的目标是阻止用户在完成之前意外离开表单,您可以使用window.onbeforeunload显示允许用户取消导航的警告消息:

window.onbeforeunload = function() {
    return "Are you sure you want to leave this page?  Your current entries" +
        " will be lost.";
};