2013-04-11 74 views
1

我有一個全球性的ajaxError事件在我base.master,像這樣全球ajaxError事件

$(document).ajaxError(function(event, request, settings,thrownError) { 
    $("#results").append("<li>some error msg.</li>"); 
    }); 

,但我不希望使用「#results」。我希望它是動態的。我希望函數始終在update-target元素中顯示錯誤消息。我怎麼能找到在錯誤事件中從我的ajax調用中使用的UpdateTarget ID?謝謝。

using (Ajax.BeginForm("action", null, 
      new AjaxOptions { 
      UpdateTargetId = "results", <--find this element in my error event 
      LoadingElementId = "loading", 
+0

它不是在設置變量中嗎? – 2013-04-11 19:10:19

+0

在設置中,我檢查jquery documantation,但它不會說在設置參數中是什麼。 – satuday 2013-04-12 14:37:32

+0

@Steve沒有回答! – 2013-04-12 15:07:43

回答

1

我不熟悉ASP,但ajaxError接收傳遞給ajax方法恰當地命名爲settings變量的所有設置。

所以,如果你有一個AJAX調用是這樣的:

$.ajax({ 
    url: '/some/url.asp', 
    data: myData, 
    resultsEle: $('#myResults') 
}); 

您可以訪問resultsEleajaxError這樣的:

$(document).ajaxError(function(event, request, settings, thrownError) { 
    settings.resultsEle.append("<li>some error msg.</li>"); 
}); 

同樣,我不熟悉您呼叫的方式在你的ASP代碼中的AJAX方法,但我的猜測是你可以用這種方式得到元素:

$(document).ajaxError(function(event, request, settings, thrownError) { 
    $('#'+settings.UpdateTargetId).append("<li>some error msg.</li>"); 
}); 
+0

settings.UpdateTargetId不工作...文檔在jQuery網站中很差... – satuday 2013-04-12 14:39:03