
本文讲解如何在使用 SweetAlert 处理 AJAX 提交后,避免页面重载,直接通过 JavaScript 隐藏目标 div 元素,并修正原代码中 localStorage 操作的语法错误与执行逻辑问题。
本文讲解如何在使用 sweetalert 处理 ajax 提交后,**避免页面重载**,直接通过 javascript 隐藏目标 div 元素,并修正原代码中 localstorage 操作的语法错误与执行逻辑问题。
在实际开发中,频繁调用 location.reload() 不仅影响用户体验(造成白屏、状态丢失),还可能掩盖本可通过前端逻辑优雅解决的问题。针对您的需求——在 SweetAlert 确认并完成 AJAX 提交后隐藏 原代码中: 存在两个关键问题: ✅ 推荐修改方案如下(已优化结构、添加错误处理与注释): .hide() vs .remove(): localStorage 修正说明: 增强健壮性建议: 通过以上改造,您既能实现目标 div 的即时隐藏,又能提升交互流畅度与代码可维护性——真正的“前端响应式控制”,而非依赖粗暴的页面重载。✅ 正确做法:用 .hide() 或 .remove() 替代 location.reload()
location.reload();
localStorage.removeItem('leftcontent');
localStorage.getItem('rightcontent', data); // ❌ 语法错误:getItem 只接受一个参数
$(document).ready(function() {
$(document).on('click', '#approve', function() {
Swal.fire({
title: 'Are you sure?',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Yes',
cancelButtonText: 'Cancel'
}).then((result) => {
if (result.isConfirmed) { // 推荐使用 isConfirmed(SweetAlert 11+ 更语义化)
$('.leftForms').each(function(index, form) {
const $form = $(form);
const valuesToSend = $form.serialize();
$.ajax({
url: 'data.php', // 注意:原代码中同时写了 url 和 $(this).attr('action'),以 url 为准
type: $form.attr('method') || 'POST',
data: valuesToSend,
dataType: 'json' // 显式声明响应类型,便于解析
})
.done(function(response) {
Swal.fire({
title: 'Data berhasil diupdate!',
text: response.message || 'Update completed.',
icon: 'success',
timer: 1500,
showConfirmButton: false
}).then(() => {
// ✅ 关键:隐藏目标 div(不刷新页面)
$('#content1').hide(); // 或 .remove() 彻底移除
// ✅ 正确操作 localStorage
localStorage.removeItem('leftcontent');
// 若需读取 rightcontent:const rightData = localStorage.getItem('rightcontent');
// ✅ 可选:重置表单或更新 UI 状态
// $form[0].reset();
});
})
.fail(function(xhr, status, error) {
Swal.fire('Error', 'Failed to submit: ' + error, 'error');
});
});
}
});
});
});⚠️ 注意事项与最佳实践
$(function() {
if (localStorage.getItem('content1_hidden') === 'true') {
$('#content1').hide();
}
});










