Jquery 刷新当前选定的Ajax成功选项卡
我有几个选项卡,从数据库填充。每个选项卡都包含一个局部视图,该视图也是从数据库填充的。当有人向这些部分表示的集合之一添加某些内容时,我希望它刷新选项卡内容,以反映更改Jquery 刷新当前选定的Ajax成功选项卡,jquery,ajax,asp.net-mvc,tabs,jquery-1.8,Jquery,Ajax,Asp.net Mvc,Tabs,Jquery 1.8,我有几个选项卡,从数据库填充。每个选项卡都包含一个局部视图,该视图也是从数据库填充的。当有人向这些部分表示的集合之一添加某些内容时,我希望它刷新选项卡内容,以反映更改 function addNewRequest(arForm) { username = $(".ui-tabs-selected").attr("id"); currentUser = document.getElementById("currUser").value; $.ajax({ u
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调用成功,它将尝试在当前选定的索引处加载选项卡。我已经看过了用于获取所选选项卡索引的表达式,据我所知,它是有效的,即使可能有点粗糙
应刷新选项卡的代码,
$(“#用户”).tabs(“加载”,$(“#用户.ui选项卡面板:非(.ui选项卡隐藏”).index()-1)代码>,不执行任何操作。有人知道为什么吗?F**kadodle-doo,我知道了。因为JQueryUI很蹩脚,只允许刷新AJAX加载的内容,所以只需替换当前所选选项卡div的HTML就更容易了
JQuery代码:
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) {
$('#users .ui-tabs-panel:not(.ui-tabs-hide)').html(response);
dialog.dialog("close");
} else {
alert(response);
}
},
error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); }
});
}
作为一种回应,抛开部分观点
public ActionResult submitAdvisoryRequestForm(BCRTAdvisoryRequest newRequest, string username, string currUser)
{
if (ModelState.IsValid)
{
var ar = new AdvisoryRequestsLogic();
if (ar.addAdvisoryRequest(newRequest) > 0)
return PartialView("_userAdvisoryRequests", ar.getUserAdvisoryRequests(username));
}
return null;
}
我很确定这不是一个问题,请出示你的HTML您的代码正在初始化选项卡。我最初的想法是,您的url
应该是/Home…
或/Home…
,而不仅仅是Home…
而且我认为您不需要在索引上使用-1
。url工作正常,只是JQuery中的'load'
方法不起作用。如果没有-1
,它将返回一个非零基的索引,这不是很有用:)澄清一下,我可以让AJAX函数成功返回,我只是无法刷新选项卡内容。为什么在这条语句末尾用花括号括起来:$(“#用户”).tabs(“加载”,$(“#用户.用户.用户界面选项卡面板:不是(.ui选项卡隐藏”).index()-1});代码>?哈!很高兴你把它整理好了!令人惊讶的是,您现在显示的代码可能是问题所在?!顺便说一句,jQueryUI远非跛脚,因为您正在使用它(开源)这一事实至少在某种程度上证明了它的正确性!不过我不同意你的回答。JQuery本身(它是JQuery)的基础,使您能够将内容加载到您选择的任何元素中。啊,你是说控制器代码?我想这并不重要,只要你知道我返回的是部分视图作为选项卡的内容。另外,.html()是否与.load()不同?也许我应该把它改成“JQuery 1.8是跛脚的”,哈哈,设置html,而.load()
从URL加载。