2010-05-21 55 views
0

我正在使用jquery表單插件(http://malsup.com/jquery/form/)通過在後臺處理的ajax上傳文件。

上傳工作正常,我使用ASP.Net MVC返回包含$(document).ready調用的部分視圖,以設置一個'計時器'來檢查上載文件處理狀態的狀態。當我返回包含ha $(document).ready調用的腳本塊的局部視圖時,它永遠不會被觸發,因此用於檢查上傳狀態的'timer'永遠不會啓動。

當我通過一個普通的$ .post調用(沒有上傳)時,該函數在將html加載到DOM後正確觸發。當調用ajaxSubmit函數讓它觸發時,還有什麼需要做的嗎?

只是一個代碼示例位:

$('form').live('submit', function() { 
       $(this).ajaxSubmit({     
        success: function (data) {       
         $('#statusDiv').html(data);       
        } 
       });    
       return false; 
      }); 

回答

1

可你ASP.Net MVC局部視圖加載程序關火回調例程?您可以嘗試在主文檔的ready()處理程序中使用.live()來查看自定義事件綁定。然後在你的局部視圖回調中使用.trigger('custom_event')。喜歡的東西:

$(document).ready(function(){ 
    $('container_for_partial_view').live('custom_event', function(){ 
     set_timer_and_do_stuff() 
    } 
}) 

...當局部視圖通過AJAX加載:

$('container_for_partial_view etc etc').trigger('custom_event') 
+0

這結束了工作,但我希望的是「更清潔」的解決方案。我不得不使用隱藏字段從部分視圖中返回的HTML中獲取值,但它工作正常。 我想我試圖在分部視圖中添加更多'邏輯'(javascript),但這應該可能都是在最初加載的容器頁面中完成的。 – ncyankee 2010-05-21 12:27:14