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

如何在HTML+JS搭建的登录页面中清除旧用户名与密码

实现方案

你只需要在校验逻辑执行完成后,将用户名、密码输入框的value属性设为空字符串即可。同时注意你当前代码存在一处逻辑漏洞:全局变量login没有在每次触发登录校验时重置,会导致第一次登录成功后,后续所有校验都会被误判为成功,建议同步修复。

具体修改步骤

  • 进入getUser函数时首先重置login变量为false,避免上次校验结果干扰本次判断
  • 校验逻辑执行完成后,统一清空两个输入框的内容

额外提示:你原代码中判断用户账号密码匹配时使用的是位运算符&,建议替换为逻辑与运算符&&,避免出现异常判断结果,下述修改代码中已同步修正该问题。

修改后的完整JS代码

const loginSign = document.querySelector('.loginSign')
const passSign = document.querySelector('.passSign')
const signBtn = document.querySelector('.signBtn')

var login = false;
async function getUser() {
    // 每次触发校验先重置登录状态
    login = false
    const data = await getData()

    data.forEach((user,index)=> {
        if(user.login.toLowerCase() === loginSign.value.toLowerCase() && user.pass.toLowerCase() === passSign.value.toLowerCase()) {
            login = true
        }
    });

    if(login) {
        setTimeout(function(){
            successful.classList.add('active')
        },500)
        setTimeout(function(){
            successful.classList.remove('active')
        },3000)
        console.log(login)
    }
    else {
        unsuccessful.classList.add('active')
        setTimeout(function() {
            unsuccessful.classList.remove('active')
        },2000)
        console.log("err :" + login)
    }

    // 校验完成后统一清空输入框内容
    loginSign.value = ''
    passSign.value = ''
}

额外可选优化

如果你后续把登录按钮换成form原生的submit触发逻辑,也可以直接调用表单的reset()方法批量清空所有表单内容,写法更简洁:

document.querySelector('.signForm').reset()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:36:03