【发布时间】:2014-08-08 01:24:24
【问题描述】:
我有几个选项卡,从数据库填充。每个选项卡都包含一个部分视图,也是从数据库中填充的。当有人向这些部分代表的集合之一添加某些内容时,我希望它刷新选项卡内容,以反映更改。
function addNewRequest(arForm) {
username = $(".ui-tabs-selected").attr("id");
currentUser = document.getElementById("currUser").value;
$.ajax({
url: 'Home/submitAdvisoryRequestForm',
type: 'POST',
data: arForm.serialize() + "&username=" + username + "&currUser=" + currentUser,
success: function (response) {
if (response == "true") {
$("#users").tabs("load", $('#users .ui-tabs-panel:not(.ui-tabs-hide)').index() - 1);
dialog.dialog("close");
} else {
alert(response);
}
},
error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); }
});
}
所以据我了解,如果 ajax 调用成功,它会尝试在当前选定的索引处加载选项卡。我已经看过用于抓取所选标签索引的表达式,据我所知,它可以工作,即使可能有点 hacky。
应该刷新标签的代码$("#users").tabs("load", $('#users .ui-tabs-panel:not(.ui-tabs-hide)').index() - 1); 什么都不做。有谁知道为什么?
【问题讨论】:
-
我很确定这不是问题
-
请显示您的 HTML。 & 你的代码初始化选项卡。
-
我最初的想法是你的
url应该是./Home...或/Home...而不是Home...我认为你不需要在索引上使用-1。 -
URL 工作正常,只是 JQuery 中的
'load'方法不起作用。如果没有-1,它会返回一个不是从零开始的索引,这不是很有用:) 澄清一下,我可以让 AJAX 函数成功返回,我只是无法刷新选项卡内容。跨度> -
为什么这个语句末尾的大括号:
$("#users").tabs("load", $('#users .ui-tabs-panel:not(.ui-tabs-hide)').index() - 1});?
标签: jquery ajax asp.net-mvc tabs jquery-1.8