2016-08-18 57 views
1

我在这里有一种情况。我有一个包含隐藏价值的表单。当用户点击浏览器后退按钮时,表单应该被提交。我控制了后退按钮,但没有找到浏览器后退按钮的解决方案。这是我的代码。当用户点击浏览器后退按钮时提交表格

<form id="movevalue" action="/media" method="post"> 
    <input type="hidden" id="pagedetail" name="pagedetail" value="<?php echo $pagenumber; ?>" /> 
    <input type="submit" value="" style="display:none" /> 
</form> 

在页面的结束,这是我的脚本。

脚本

<script> 
    $(function(){ 
     $(document).bind("keydown keypress", function(e){ 
     if(e.which == 8){ // 8 == backspace 
     $('#movevalue').submit(); 
     } 
    }); 
    }); 
    window.onbeforeunload = function(evt)  
    {  
    if (typeof evt == 'undefined')  
     $('#movevalue').submit() 
    } 

    </script> 

window.onbeforeunload这不是为我工作。

+1

'backspace'是不是浏览器的后退按钮。只是要确定。 ;) – eisbehr

+1

你需要处理离开页面。只需处理一个按键就不会解决您的问题,因为用户可以使用后退按钮,鼠标按钮或滚轮,并且不会在所有浏览器中退格(例如,在Chrome中保留alt +)。 – Archer

+0

@eisbehr是的,它不是,但在退格的帮助下,它转到前一页 –

回答

2

只需使用此代码,这将封面休假或关闭的所有状态......

<script> 
window.onbeforeunload = function() { 
    $('#movevalue').submit(); 
    return true; 
}; 
</script> 
+0

此显示消息离开或不是我不想要此消息 –

+0

否,当返回true时不显示任何消息。 – AnasSafi

+0

它显示先生。我已经实现了这个 –

1

试试这个:

$(function() { 
if (window.history && window.history.pushState) { 
    window.history.pushState('', null, ''); 
    $(window).on('popstate', function (id) { 
     $('#movevalue').submit(); 
    }); 
} 

});

+0

这不适用于此 –

相关问题