我正在使用jquery发布表单。除了IE之外,所有浏览器都能正常工作,因为浏览器指向“beta.php”,IE似乎没有采用“防止默认”。这是我的代码
$(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);
}
});
});
});
答案 0 :(得分:2)
不使用event.preventDefault();
,而是使用e.preventDefault()
。
您已在函数中通过了e
:
$("#betaform").submit(function(e){
^ here
因此,将e
更改为event
或event
更改为e
。
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
});
});
答案 1 :(得分:0)
我们使用此功能进行跨浏览器支持,因为在早期版本的IE中,event.preventDefault()并不存在。
function PreventDefault(event) {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
}
答案 2 :(得分:0)
JavaScript提交事件在Internet Explorer中不会出现气泡。 但是,依赖于事件委托和提交事件的脚本 从jQuery 1.4开始,它将在浏览器中一致地工作 规范了事件的行为。
表单及其子元素不应使用输入名称或ID 与表单属性冲突,例如提交,长度或方法。 名称冲突可能导致混乱的故障。有关的完整列表 规则并检查你的标记是否存在这些问题
去检查表单中的所有标签并检查具有值(提交,长度或方法)的属性,并在以下内容上重命名属性:
<input type="submit" id="submit" name="submit" />
进入
<input type="submit" id="submision" name="valid" />