2

我有一个在提交时自动刷新页面的表单,我尝试添加:

onSubmit="return false;"到表单元素,但是当您单击提交时,表单只是停止并且没有任何反应。

我不介意页面刷新太多,但表单位于页面底部,刷新将您带回顶部。所以我尝试了这种方法:

<form name='test' method='POST' action="index.php" onSubmit="window.scrollTo(5000,500);">

这适用于一瞬间,但其他东西会覆盖它(不确定是什么)

我也尝试过使用 php:header.location只是为了获得“标头已发送”错误。

有问题的网站可以在这里看到,表格在最底部。

我使用的唯一两个可以预见任何冲突的 jquery 库是 nicescroll 和(更可能的)航点,但我对它们都进行了挖掘,但找不到任何冲突的问题。

如果有人知道保持表单功能但停止刷新页面的方法,那就太好了谢谢

编辑:阅读下面的答案后,看起来我将不得不使用 ajax 来完成这个,我完全没有使用 ajax 的经验,所以我会看看是怎么回事。

4

3 回答 3

8

在这种情况下,您似乎需要通过AJAX提交方式。在这种情况下,您可以使用 jQuery$.ajax()方法来执行此操作。下面的示例:

HTML

<form name='test' method='POST' action="index.php">

jQuery

$('form[name=test]').submit(function(e) {
   e.preventDefault();
   window.scrollTo(5000,500);

   // a sample AJAX request
   $.ajax({
     url : this.action,
     type : this.method,
     data : $(this).serialize(),
     success : function(response) {

     }
   });
});

在这里,.preventDefault()用于在表单提交时停止页面刷新。

于 2012-08-16T18:57:22.877 回答
2

为什么不将表单提交到隐藏的 IFRAME?

<iframe name="myiframe" style="display: none;"></iframe>
<form name='test' method='POST' action="index.php" target="myiframe">
  ...
</form>
于 2012-08-16T18:59:09.510 回答
0

使用 AJAX 而不是普通的表单提交怎么样?

于 2012-08-16T18:58:36.050 回答