阻止用户重新提交表单/ aka停止刷新

时间:2014-01-30 12:42:02

标签: javascript jquery

我试图阻止用户刷新包含表单的页面。基本上,我想阻止用户按 Ctrl + R F5 Ctrl + F5

假设我有以下

<form action="#">
<input type="text"  /> 
</form>

以下js代码

<script>
document.onkeydown = function() {
    switch (event.keyCode) {
        case 116 : //F5 button
            event.returnValue = false;
            event.keyCode = 0;
            return false;

        case 82 : //R button
            if (event.ctrlKey) {
                event.returnValue = false;
                event.keyCode = 0;
                return false;
            }
    }
}

</script>

它似乎停止在Chrome中。但是,在firefox上仍然可以按 F5 !?什么是阻止用户重新提交表单/ aka停止刷新

的方法

2 个答案:

答案 0 :(得分:2)

超越这些功能是一个非常糟糕的主意。这不是JavaScript可以正常做的事情。您需要让刷新发生,并使用onbeforeunload事件:

请参阅此重复问题:

Is there a way to overwrite the refresh button action?

这一个:

Is there a way to capture/override Ctrl-R or F5 on IE using Javascript?

用它来捕捉你想要的东西:

window.onbeforeunload = function(){
     //de ... Do something else.
}

答案 1 :(得分:1)

尝试使用此代码,它可以在chrome和Firefox中停止刷新页面

$(document).keydown(function(objEvent) {       
    if (objEvent.ctrlKey) {          
            return false;          
    }             
});