2010-05-21 67 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

相关问题