我有一个表单会在提交时自动刷新页面,我尝试添加:
onSubmit="return false;"
到表单元素,但随后表单停止,单击“提交”时没有任何反应。
我不介意页面刷新这么多,但表单位于页面的底部,刷新会让你回到顶部。所以我尝试了这种方法:
<form name='test' method='POST' action="index.php" onSubmit="window.scrollTo(5000,500);">
这适用于瞬间但是其他东西会覆盖它(不确定是什么)
我也尝试过使用php:header.location
只是为了得到“标题已经发送”错误。
可以看到相关网站here,表单位于最底层。
我正在使用的两个jquery库我可以预见到任何冲突都是nicescroll和(更可能的)航点,但我挖掘它们两者并且找不到任何冲突的问题。
如果有人知道保留表单功能但停止刷新页面的方法,那就太棒了 感谢
编辑:在阅读下面的答案后,看起来我将不得不使用ajax来实现这一点,我完全没有使用ajax的经验,所以我会看到这是怎么回事。答案 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而不是普通表单提交怎么样?