Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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

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
Javascript 如何在ajax成功中调用location.reload()后显示隐藏字段值_Javascript_Jquery_Model View Controller - Fatal编程技术网

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

Javascript 如何在ajax成功中调用location.reload()后显示隐藏字段值,javascript,jquery,model-view-controller,Javascript,Jquery,Model View Controller,调用location.reload()后显示隐藏字段值 重新加载时,页面将重新加载。因此,对页面状态所做的任何更改都将丢失 所以你有两个选择: 不要重新加载。这是首选方案。您已经在使用AJAX,只需根据需要更新页面的状态即可。你根本不需要重新加载 在重新加载之前,在某个地方保留一些标志(本地存储?cookie?类似性质的东西),指示应该显示该字段。在页面的启动代码中(您使用的是jQuery,因此我假设document.ready处理程序在这里是标准的)检查该标志并显示该字段 第一种选择当然更可取

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

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

所以你有两个选择:

  • 不要重新加载。这是首选方案。您已经在使用AJAX,只需根据需要更新页面的状态即可。你根本不需要重新加载
  • 在重新加载之前,在某个地方保留一些标志(本地存储?cookie?类似性质的东西),指示应该显示该字段。在页面的启动代码中(您使用的是jQuery,因此我假设
    document.ready
    处理程序在这里是标准的)检查该标志并显示该字段
  • 第一种选择当然更可取。但第二种选择在结构上可能类似于:

    $(function () {
        var shouldShowField = getPersistedFlag();
        if (shouldShowField) {
            $('#imageUploadScs').show();
        }
    });
    
    // elsewhere...
    ajaxRequest.done(function (xhr, textStatus) {
        setPersistedFlag();
        location.reload();
    });
    
    getPersistedFlag
    setPersistedFlag
    的实现就是上面所描述的。他们将读写您想要持久化的任何数据到您选择的任何存储机制。(其中任何一个都有许多可用的示例。)


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

    在location.reload()之后写入的任何命令都不会发生,因为您在执行之前重新加载了页面。所以你要从头开始。你的逻辑需要重新思考,你需要坚持价值观。在
    localstorage
    中,重新加载页面时将其取回。重新加载页面违背了使用Ajax的目的。您的代码毫无意义。为什么要使用ajax?@charlietfl您可以。。。检查本地存储是否为空,如果为空则输入保持隐藏如果为空,使用localstorage并删除localstorage,就这么简单
    $(function () {
        var shouldShowField = getPersistedFlag();
        if (shouldShowField) {
            $('#imageUploadScs').show();
        }
    });
    
    // elsewhere...
    ajaxRequest.done(function (xhr, textStatus) {
        setPersistedFlag();
        location.reload();
    });