2014-12-03 37 views
0

我正在使用jquery發佈表單。除IE之外的所有瀏覽器都可以正常工作,IE似乎沒有在瀏覽器指向「beta.php」時採用「預防默認」。這裏是我的代碼JQuery Post不能使用IE8 + 9

$(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); 
       } 

      }); 
     }); 

    }); 
+1

使用'e.preventDefault();'當你通過函數傳遞'e'時。 – Albzi 2014-12-03 15:54:24

+0

可能的重複http://stackoverflow.com/questions/1000597/event-preventdefault-function-not-working-in-ie – meskobalazs 2014-12-03 15:55:28

+0

此外這可能有助於http://stackoverflow.com/questions/1357118/event-preventdefault- vs-return-false – 2014-12-03 15:56:07

回答

2

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

你在函數中傳遞e通過:

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

所以要麼改變eeventevente

扎克還表示,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 
    }); 

}); 
+0

也可能要返回false – 2014-12-03 15:56:35

+0

謝謝@ZachLeighton,我已經更新了我的答案。 :) – Albzi 2014-12-03 15:58:25

+0

返回false是/不需要的。 – epascarello 2014-12-03 16:10:27

0

我們將此功能用於跨瀏覽器支持,因爲event.preventDefault()在早期版本的IE中不存在。

function PreventDefault(event) { 
    event.preventDefault ? event.preventDefault() : event.returnValue = false; 
} 
+0

這不是jQuery需要的......這不是問題。 – epascarello 2014-12-03 16:11:09

0

中的JavaScript提交該事件不會冒泡在Internet Explorer中。 但是,依賴於事件委託與提交事件 的腳本將在jQuery 1.4之前的瀏覽器中始終如一地工作,其中 將事件的行爲規範化。

表單及其子元素不應使用與表單屬性(如提交,長度或方法)衝突的輸入名稱或ID。 名稱衝突可能導致令人困惑的失敗。對於 規則和完整列表,從jQuery API

去檢查你的標記這些問題

,檢查內部形狀的所有標記,並檢查其值(提交,長度或方法)的屬性,並重新命名屬性上是這樣的:

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

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