如何在表单提交上停止页面刷新

时间:2012-08-16 18:55:22

标签: php javascript jquery html

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

onSubmit="return false;"到表单元素,但随后表单停止,单击“提交”时没有任何反应。

我不介意页面刷新这么多,但表单位于页面的底部,刷新会让你回到顶部。所以我尝试了这种方法:

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

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

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

可以看到相关网站here,表单位于最底层。

我正在使用的两个jquery库我可以预见到任何冲突都是nicescroll和(更可能的)航点,但我挖掘它们两者并且找不到任何冲突的问题。

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

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

3 个答案:

答案 0 :(得分: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() 用于表单提交时停止页面刷新。

答案 1 :(得分:2)

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

<iframe name="myiframe" style="display: none;"></iframe>
<form name='test' method='POST' action="index.php" target="myiframe">
  ...
</form>

答案 2 :(得分:0)

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