Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 刷新当前选定的Ajax成功选项卡_Jquery_Ajax_Asp.net Mvc_Tabs_Jquery 1.8 - Fatal编程技术网

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加载。