2016-03-04 35 views
0

我有一個jQuery $ .ajax POST,只有在開發人員工具處於打開狀態時纔會觸發IE11。它在Chrome和Edge上運行良好。啓動它的代碼如下:Internet Explorer 11處理jQuery的方式取決於開發人員工具是否打開

$(".edit").click(function() { 
     data = "id=" + $(this).attr("cart") + "&num=" + $("input.num").val(); 
     $.ajax({ 
      url: '@Url.Action("Edit","Cart")', 
      data: data, 
      type: "POST" 
     }).done(location.reload()); 
    }); 

另一個頁面上的另一個POST無論如何工作。下面的代碼創建它:

$(".add").click(function() { 
     var nums = [ 
      $(this).attr("item_id"), 
      $(this).attr("quote_id"), 
      $(this).attr("quantity_amount"), 
      $(this).attr("cus_no") 
     ] 
     data = $.validator.format("item_id={0}&quote_id={1}&quantity_amount={2}&cus_no={3}", nums); 
     $.ajax({ 
      url: '@Url.Action("Add","Cart")', 
      data: data, 
      type: "POST" 
     }); 
    }); 

我完全失去了。

+0

你可以確定這個問題與開放開發工具沒有關係,我懷疑問題是IE,FF ......或者誰知道什麼。嘗試清除瀏覽器的緩存... –

+0

首先...總是使用'var'。你在全局聲明'data'。任何形式標籤涉及?使用錯誤處理程序。需要更多關於什麼是或不正在發生的反饋 – charlietfl

+0

@MatíasFidemraizer我是這麼做的。行爲仍然存在,使用工具打開並關閉它們失敗。 – Kenny

回答

0

你正在做幾件事情錯了,這可產生問題

首先使用var data = somethinghere代替data = somethinghere

其次,在第一個樣品的方法,使用它像

.done(function() { window.location.reload() }); 

,而不是

.done(location.reload()); 

還有一件事,記住它作爲一個規則,如果聲明新變量,也可以使用var,也可以使用分號(在num數組末尾添加一個分號)。這種奇怪的事情發生在IE中,因爲它執行更嚴格的驗證。

+1

我不知道爲什麼更嚴格的驗證只是隱藏開發人員工具的問題,但問題似乎已消失。謝謝! – Kenny

+0

是的,這是IE的最奇怪的行爲之一:)歡迎 –

相關問題