【发布时间】: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