classList.remove失效:元素显示1秒后消失且页面自动刷新求助
问题解决:acquistaCrediti函数导致页面刷新、元素短暂显示的问题
问题根源:你的<a>标签设置了href="",点击时除了执行acquistaCrediti()函数,还会触发浏览器默认跳转行为——刷新当前页面,导致表单刚显示就被重置回隐藏状态。
以下两种方法任选其一即可解决:
方法一:在函数中阻止默认行为
修改JS函数,添加事件阻止代码:
function acquistaCrediti(event) { event.preventDefault(); // 阻止浏览器默认跳转 document.getElementById("form-pagamento").classList.remove("d-none"); }
同时修改触发链接的onclick,传入事件对象:
<a href="" class="title" id="acquista_crediti" onclick="acquistaCrediti(event)"> ACQUISTA CREDITI </a>
方法二:修改a标签的href属性
直接将href设为javascript:void(0),取消默认跳转行为,原函数无需修改:
<a href="javascript:void(0)" class="title" id="acquista_crediti" onclick="acquistaCrediti()"> ACQUISTA CREDITI </a>
原函数保持不变:
function acquistaCrediti() { document.getElementById("form-pagamento").classList.remove("d-none"); }
两种方法都能避免页面刷新,让表单持续显示。如果后续需要给a标签添加其他跳转逻辑,优先选方法一;如果仅作为功能触发按钮,方法二更简洁。
内容的提问来源于stack exchange,提问作者CODER
相关产品推荐
相关产品推荐

