在不引人注目的javascript之前,我使用以下寄存器处理了ajax完成事件:
Sys.Net.WebRequestManager.add_completedRequest(myHandler);
每次ajax请求完成时,都会触发此事件处理程序。我还在$(document).ready()中有一个 ajaxComplete 事件绑定,只通过jQuery处理ajax调用:
$.ajaxComplete(function (e, xhr, settings) {
myHandler(xhr)
});
哪个也很棒。但是当我在ASP.NET MVC 3中启用不显眼的javascript时,我得到了一个不同的行为。它在第一次ajax调用完成时第一次触发,但在随后的ajax请求中,ajaxComplete事件再也不会触发。
现在,我知道您需要调用 $。validate.unobtrusive.parse(),以便在通过部分回发更新表单中的元素后重建验证。是否有类似的东西我需要做以确保ajaxComplete可以在后续请求中再次触发?我找不到关于此的文档。
仅供参考:我已经包含了所有jquery * .js库来支持不引人注目的javascript。我还包含MicrosoftMvc * .js库,以支持项目中的遗留代码。我希望将所有内容都转换成我遇到这个问题。
答案 0 :(得分:0)
您需要将ajaxComplete实际附加到我认为的元素吗?
$('.info').ajaxComplete(function() {
var info = $(this);
info.html('Success!');
});
您只需要在生命周期内将ajaxComplete附加到元素一次。