【问题标题】:Refresh page after submit doesn't work提交后刷新页面不起作用
【发布时间】:2026-01-31 20:25:01
【问题描述】:

我有一个奇怪的问题。

我在一页上有多个表单。提交表单后,我想刷新页面。问题是我的代码刷新了页面但没有提交表单。如果我删除刷新位,则提交表单。

我错过了什么吗?由于表单有效,请仅查看刷新位。

<form method="post" action="" id="formProduct1">
 <select id="product_1234" class="selectbox">...stuff...</select>     
 <a href="#" class="actionbutton prodorderbtn submit">Order</a>
</form>
<form method="post" action="" id="formProduct2">
 <select id="product_4321" class="selectbox">...stuff...</select>     
 <a href="#" class="actionbutton prodorderbtn submit">Order</a>
</form>
etc....

 <script>
  $('.submit').on('click', function(e){
    e.preventDefault();
    var submit = $(this);
    var form = submit.parents('form').first();
    var selected = form.find('option:selected');
    var pvid = selected.val();
    form.attr('action', '/cart/add/' + pvid).submit();

    setTimeout(window.location.reload(), 500);
    return false;

/**** this also doesn't work ******/
        setTimeout(function() {
          window.location.reload();
        }, 500);
        return false;
/**** this also doesn't work ******/
  });
 </script>

【问题讨论】:

  • 如果您想重新加载页面,为什么要在表单中添加 ajax?
  • 是的,你错过的不仅仅是“一些东西”;默认情况下,表单在提交时遵循actionURL。如果您通过刷新/重新加载中断该过程,则不会提交表单,因为提交表单的操作将被中止。
  • @user3558931:好的,当然! setTimeout('history.go(0);',100);返回假;似乎可以解决问题!
  • 那么您可能想回到基础并使用标准行为...我不明白您为什么使用 javascript?
  • @Bartdude:因为表单中填充了 JSON 数据

标签: jquery forms submit refresh


【解决方案1】:

好的,我找到了一个快速的肮脏解决方案

 setTimeout('history.go(0);',100); return false;

【讨论】:

  • 这不会刷新或重新加载页面;它只是从浏览器的缓存中加载页面。