javascript - 如何在 ajax 成功调用 location.reload() 后显示隐藏字段值

标签 javascript jquery model-view-controller

调用 location.reload() 后显示隐藏字段值。

var ajaxRequest = $.ajax({
            type: "POST",
                url: "my url",//locating to another project action method which is already deployed and running in server
            contentType: false,
            processData: false,
            data: data
        });     
ajaxRequest.done(function (xhr, textStatus) {

            location.reload();//reloading page
            $('#imageUploadScs').show();//displaying hidden field after reloading page

        });

最佳答案

当您重新加载时,页面重新加载。因此,您对页面状态所做的任何更改都将丢失。

所以你有两个选择:

  1. 不要重新加载。这是首选。您已经在使用 AJAX,只需根据需要更新页面状态即可。您根本不需要重新加载。
  2. 在重新加载之前,在某处保留一些标志(本地存储?cookie?类似性质的东西)以指示应显示该字段。在页面的启动代码中(您使用的是 jQuery,所以我假设 document.ready 处理程序在这里是标准的)检查该标志并显示该字段。

当然首选第一个选项。但第二个选项可能在结构上看起来像这样:

$(function () {
    var shouldShowField = getPersistedFlag();
    if (shouldShowField) {
        $('#imageUploadScs').show();
    }
});

// elsewhere...
ajaxRequest.done(function (xhr, textStatus) {
    setPersistedFlag();
    location.reload();
});

getPersistedFlagsetPersistedFlag 的实现就是上面所描述的。他们会读取和写入您想要持久保存到您选择的任何存储机制的任何数据。 (其中任何一个都有很多可用的示例。)

如果这看起来使工作过于复杂,那么您可能是对的。这就是为什么首先不重新加载页面的第一个选项是首选的原因。

关于javascript - 如何在 ajax 成功调用 location.reload() 后显示隐藏字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214305/

相关文章:

javascript - translate3d 在 iOS 上滞后

javascript - 让谷歌地图折线出现在街道名称下方?

asp.net-mvc - 如何在asp.net mvc中的静态类中获取客户端IP地址

javascript - 如何将 AJAX 数据从 VIEW 发送到 CONTROLLER? (PHP(MVC)+AJAX)

c++ - VC++中不同函数的对象访问

javascript - 使用 OData 过滤器生成 Breeze.js 查询(多个谓词)

javascript - 如何使用 ASP.NET MVC 中的 Javascript 打开窗口?

jquery - 事件,当(内部)html 更改时

javascript - 检查输入值是否完全匹配常量值 Jquery

javascript - 如何为动态表Td(不是Th)添加div