You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

innerHTML失效问题:登录后Welcome文本闪烁消失的原因排查

问题原因与解决方案

嘿,我一眼就看出问题所在啦!你遇到的Welcome文本闪烁后消失的情况,根源在于表单的默认提交行为:

你用了<input type="submit">按钮,点击它的时候,浏览器不仅会执行你写的validate()函数,还会默认提交整个表单并刷新页面——这就是为什么你刚设置的innerHTML内容,瞬间就随着页面刷新被清空了。

下面给你两种简单的解决办法:


方法一:阻止表单的默认提交行为

修改你的validate()函数,在函数末尾添加return false;,这样就能阻止浏览器的默认表单提交动作:

function validate(){
    if(document.getElementById("username").value=="Tushar"&&document.getElementById("password").value=="tushar"){
        alert("Hello");
        document.getElementById("content").innerHTML = '<h1 id = "welcome" style="font-size: 25px;color:#ffffff; ">Welcome</h1>';
    } else{
        alert("Invalid username/password");
    }
    // 阻止表单默认提交刷新
    return false;
}

你的HTML里的submit按钮已经写了onclick ="return validate()",所以函数返回false后,就能彻底阻止页面刷新啦。


方法二:改用普通按钮替代submit按钮

把<input type="submit">改成<input type="button">,这样按钮就不会触发表单的默认提交行为,只会执行你的validate()函数:

<input type = "button" onclick ="validate()" value ="Login">

这种方法更直观,不需要处理返回值,适合不想修改太多JS代码的情况。

两种方法选一个就行,测试后Welcome文本就能正常显示啦!

内容的提问来源于stack exchange,提问作者Tushar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:27:31