如何获取调用AJAX.BeginForm的onSuccess的表单或div
我在div元素中调用了Ajax.BeginForm,所以我想得到表单所在的div元素。即我想要一个等价的
function function1(event){ var table = $(event.target).parents("table"); }
可以从Ajax.beginform的onsuccess函数中使用。 有人可以帮忙吗?
事实certificate,在onsuccess函数中,“this”指的是表单元素。 所以我可以轻松使用,
$(this).find("mydiv");
要么
$(this).parent("table").find("mydiv");
MVC4似乎打破了它。 可怕的“这个”现在是XHR。 要解决此问题,请使用此讨厌的黑客:
$(function() { var lastEvent = null; $("body").on("submit", "form[data-ajax=true]", function(e) { lastEvent = e; }); window.TagXhrWithEventTarget = function(xhr) { xhr.capturedSubmitEvent = lastEvent; } });
并以开始forms:
@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; . . .