JQuery Post不使用IE8 + 9

时间:2014-12-03 15:52:31

标签: javascript jquery internet-explorer-8

我正在使用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);
                }

            });
        });

     });

3 个答案:

答案 0 :(得分:2)

不使用event.preventDefault();,而是使用e.preventDefault()

您已在函数中通过了e

$("#betaform").submit(function(e){
                               ^ here

因此,将e更改为eventevent更改为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   与表单属性冲突,例如提交,长度或方法。   名称冲突可能导致混乱的故障。有关的完整列表   规则并检查你的标记是否存在这些问题

来自jQuery API

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

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

进入

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