2012-07-20 29 views
0

我有一個MVC視圖,它有一個div容器,我通過ajax進行更新。jQuery datepicker在Firefox和IE的MVC局部視圖的AJAX更新後不工作

<div id="PartialContainer"></div> 

<script type="text/javascript"> 
$.ajax({ 
     url: '/my/partial_action', 
     success: function(result) { 
      $("#PartialContainer").html(result); 
     } 
    }); 

</script> 

控制器動作代碼:

public ActionResult partial_action() 
{ 
    return PartialView("_MyPartial"); 
} 

最後,_MyPartial觀點:

<input type="text" class="datepicker" /> 

<script type="text/javascript"> 
    $(function() { 
     alert("before"); 
     $("input.datepicker").datepicker(); 
     alert("after"); 
    }); 
</script> 

問題: 這正常在Chrome中,我得到的日期選擇器下拉精細,無論是警報(之前和之後)顯示。但是在FF和IE中,日期選擇器不起作用。我確實得到這兩個警報,但不是日期選擇器行爲。沒有螢火蟲/ F12腳本錯誤。

我試着在局部視圖之外添加一個日期選擇器輸入,並且它在所有瀏覽器中工作正常。

我使用jQuery UI 1.7.2,MVC 4

任何人有爲什麼發生這種情況的任何想法?

編輯:所以我解決了這個問題,它不是一個JavaScript問題,但造型問題。我在twitter引導程序對話框中使用了datepickers,它覆蓋了datepicker。改變一些Z-索引固定它給我。

+0

現在我已經檢查了它,並將其作爲FF 13,IE 9預期對我的作品,Opera 12和Safari 5.然而,IE似乎緩存了結果,可能是問題所在。嘗試添加一些隨機參數到您的網址。 – hazzik 2012-07-20 16:23:40

回答

1

嘗試刪除$。就緒呼叫,並與IIFE取代它,所以你的代碼會像下面:

編輯
<input type="text" class="datepicker" /> 

<script type="text/javascript"> 
    (function() { 
     alert("before"); 
     $("input.datepicker").datepicker(); 
     alert("after"); 
    })(); 
</script> 

現在我已經檢查了它,並預期這兩種情況下爲我工作在FF 13,IE 9,Opera 12和Safari 5.然而,IE似乎緩存結果,可能是問題所在。嘗試一些隨機ARG添加到您的網址或設置cache: false(這是true默認情況下),以Ajax調用的基本頁面

<div id="PartialContainer"></div> 

<script type="text/javascript"> 
$.ajax({ 
     url: '/my/partial_action', 
     cache: false, 
     success: function(result) { 
      $("#PartialContainer").html(result); 
     } 
    }); 

</script> 
+0

沒有幫助。所有瀏覽器中的相同行爲仍然存在。 – 2012-07-20 16:05:30

+0

緩存也沒有幫助。非常奇怪的情況。 – 2012-07-20 16:38:30

+0

你有FF和IE中的任何「攔截器」插件嗎? – hazzik 2012-07-20 16:40:48

相關問題