2012-08-01 127 views

回答

1

原来,在onsuccess函数中,“this”是指表单元素。所以,我可以很容易地使用,

$(this).find("mydiv"); 

$(this).parent("table").find("mydiv"); 
+2

看起来像它不再在MVC4 – 2013-11-19 20:46:57

1

MVC4好像破了。可怕的是,“这个”现在是XHR。 要解决,使用这个讨厌的黑客:

$(function() { 

    var lastEvent = null; 
    $("body").on("submit", "form[data-ajax=true]", function(e) { 

     lastEvent = e; 

    }); 
    window.TagXhrWithEventTarget = function(xhr) { 

     xhr.capturedSubmitEvent = lastEvent; 

    } 

}); 

,并开始形式:

@using (Ajax.BeginForm("MyAction", "MyController", new AjaxOptions 
{ 
    HttpMethod = "POST", 
    OnSuccess = "ProcessResponse", 
    OnBegin = "TagXhrWithEventTarget" 
} 

,然后在ProcessResponse:

function ProcessResponse(data, status, xhr) { 

    var e = xhr.capturedSubmitEvent; 
    var control = e.target; 
    . . . 
相关问题