繁体   English   中英

jQuery Post不适用于IE8 + 9

[英]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更改为eventevent更改为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。 名称冲突可能导致混乱的故障。 有关规则的完整列表并检查标记中的这些问题

jQuery API

前往检查表单中的所有标签,并检查具有值(提交,长度或方法)的属性,并在以下内容上重命名属性:

<input type="submit" id="submit" name="submit" />

进入

<input type="submit" id="submision" name="valid" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM