我的一些表单是用Javascript/JQuery提交的,所以不会发生页面刷新。
但我注意到我的两台计算机之间的浏览器存在奇怪的行为。
在一台计算机(以及我测试过的所有浏览器)上,我的表单提交按预期执行。
我的另一台电脑(Mac)时好时坏。我将提交表单,它将执行典型的 POST 刷新。浏览器刷新后,我在 URL 地址栏中看到了按钮的文本。
-同样,我的电脑浏览器不执行此操作。
除非我疯了,否则我只能推断我的 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"); } });
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)