调用 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
});
最佳答案
当您重新加载时,页面重新加载。因此,您对页面状态所做的任何更改都将丢失。
所以你有两个选择:
- 不要重新加载。这是首选。您已经在使用 AJAX,只需根据需要更新页面状态即可。您根本不需要重新加载。
- 在重新加载之前,在某处保留一些标志(本地存储?cookie?类似性质的东西)以指示应显示该字段。在页面的启动代码中(您使用的是 jQuery,所以我假设
document.ready
处理程序在这里是标准的)检查该标志并显示该字段。
当然首选第一个选项。但第二个选项可能在结构上看起来像这样:
$(function () {
var shouldShowField = getPersistedFlag();
if (shouldShowField) {
$('#imageUploadScs').show();
}
});
// elsewhere...
ajaxRequest.done(function (xhr, textStatus) {
setPersistedFlag();
location.reload();
});
getPersistedFlag
和 setPersistedFlag
的实现就是上面所描述的。他们会读取和写入您想要持久保存到您选择的任何存储机制的任何数据。 (其中任何一个都有很多可用的示例。)
如果这看起来使工作过于复杂,那么您可能是对的。这就是为什么首先不重新加载页面的第一个选项是首选的原因。
关于javascript - 如何在 ajax 成功调用 location.reload() 后显示隐藏字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214305/