避免页面刷新时使用jQuery重新提交表单

避免页面刷新时使用jQuery重新提交表单

问题描述:

页面重新加载时是否有避免表单提交的好方法?避免页面刷新时使用jQuery重新提交表单

我想添加一个jQuery提交功能只有当一个按钮被点击,但也许我过度这一点。

只是想检查。

成功提交表单后,执行重定向。哪里去哪都没关系,但它会清除$ _POST。

header('Location: http://www.example.com/form.php'); 

对你来说,这听起来像你想重定向到你已经在页面上。如果要显示确认消息,请在URL中追加$ _GET参数。

这将阻止用户重新加载页面时表单重新提交。

如果您将jQuery添加到组合中,那么没有javascript的人将无法再使用您的表单。你最好的解决方案的确是确保表单不能在你的后端发送两次。

+0

我以前不知道是否还有真没有JS的用户支持。我决定不用担心这些,并增加了很多JS功能。不幸的是,如果他们不支持JS,他们在我的页面上不会太远。我想我选择了一些为了许多人的利益而倒闭。 :) – santa 2011-04-18 15:16:33

+0

的确如此,但我坚持这个规则,因为当我遇到这样的问题时,我通常比我的前端更好地重构自己的逻辑。 – 2011-04-18 15:18:43

+0

尽管此链接可能会回答问题,但最好在此处包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – LaGrandMere 2014-05-12 15:26:32

我假设你正在寻找一个按钮刷新页面而不重发的形式,使他们能够与新的信息发送另一个?

IE:提交联系表格。 现在你想“发送另一个”,所以你需要重新加载页面,再次呈现表单。

您可以使用jQuery函数来重新加载页面而不是刷新。只需创建一个刷新功能,将“重定向”页面到同一页面。使用jQuery

var reloadPage = window.location.href; 
$('#[button]).on('click',function(){ 
    window.location.replace(reloadPage); 
}); 

随着PHP

PHP代码来获取页面

如果

<?php 
    $url = (!empty($_SERVER['HTTPS'])) ? 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
?> 

jQuery的重定向

<script type="text/javascript"> 
$(document).ready(function(e){ 
    $('#[button]).on('click',function(){ 
     window.location.replace('<?php echo $url;?>'); 
    }); 
});