[英]JQuery Post Not Working With IE8 + 9
我正在使用jQuery发布表单。 在除IE之外的所有浏览器上都可以正常工作,IE似乎并没有采用“防止默认设置”,因为浏览器将其定向到“ beta.php”。 这是我的代码
$(document).ready(function(){
$("#betaform").submit(function(e){
event.preventDefault();
$.ajax({
url: "beta.php",
type: "POST",
data: $(this).serialize(),
success: function(data){
content = "<H2>Thank you, data received</H2>";
$("#betaform").empty().append(content);
}
});
});
});
而不是使用event.preventDefault();
,请使用e.preventDefault()
。
您已在函数中通过e
:
$("#betaform").submit(function(e){
^ here
因此,将e
更改为event
或event
更改为e
。
Zach还声明return false;
也可以包括在内。
确保是否包含return false
,它位于函数的底部。
$(document).ready(function(){
$("#betaform").submit(function(e){
e.preventDefault();
$.ajax({
url: "beta.php",
type: "POST",
data: $(this).serialize(),
success: function(data){
content = "<H2>Thank you, data received</H2>";
$("#betaform").empty().append(content);
}
});
return false; // here
});
});
我们将此功能用于跨浏览器支持,因为event.preventDefault()在早期版本的IE中不存在。
function PreventDefault(event) {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
}
JavaScript提交事件不会在Internet Explorer中冒泡。 但是,依赖事件委托和Submit事件的脚本将在jQuery 1.4及更高版本的浏览器中一致地工作,这已经规范了事件的行为。
表单及其子元素不应使用与表单属性(例如,提交,长度或方法)相冲突的输入名称或ID。 名称冲突可能导致混乱的故障。 有关规则的完整列表并检查标记中的这些问题
前往检查表单中的所有标签,并检查具有值(提交,长度或方法)的属性,并在以下内容上重命名属性:
<input type="submit" id="submit" name="submit" />
进入
<input type="submit" id="submision" name="valid" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.