我的一些表单是用Javascript/JQuery提交的,所以没有页面刷新。
但我注意到我的两台计算机之间的浏览器有一个奇怪的行为。 在一台计算机(以及我测试过的所有浏览器)上,我的表单提交按预期执行。 我的另一台电脑 (Mac) 时好时坏。我将提交表单,它会进行典型的 POST 刷新。因此浏览器刷新,我在 Url 地址栏中看到我的按钮文本。
-同样,我的 PC 浏览器不会执行此操作。
除非我疯了,否则我只能推断我 Mac 上的浏览器没有正确执行 javascript。但我更愿意在我的编码方面期待一个错误。
我是否正确确保表单不会与我的 Javascript 一起提交?
<form id="norefreshForm">
<!--more form fields here -->
<input type="submit" name="button" value="Submit Me" />
</form>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$.ajaxSetup({
global:false,
cache:false,
type:"POST",
url:"<?=$_SERVER['REQUEST_URI'];?>",
timeout:120000
});
$("form#norefreshForm").submit(function(){
$.ajax({ success:function(response){ alert("Submitted"); } });
return false;
});
});
</script>
最佳答案
实际上有些浏览器您应该执行 e.preventDefault()
而不是 return false;
我真的不知道为什么。但它发生在我身上很多。所以,你可以这样做:
$("form#norefreshForm").submit(function(){
e.preventDefault();//should be at the very top
$.ajax({ success:function(response){ alert("Submitted"); } });
});
});
关于javascript - 使用 Javascript 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14229827/