当前位置:首页 > 焦点 > js登录页面

js登录页面

2026-10-17 05:44:43 [焦点] 来源:力不从心网

一个登录页面,登录核心就三件事:输入框能打字、页面按钮能点击、登录提交后知道对错。页面听起来简单,登录但真动手写,页面细节能把人逼疯。登录

先看结构。页面HTML 部分不需要花哨,登录两个 input 加一个 button 就够了:

<form id="loginForm"> <input type="text" id="username" placeholder="用户名"> <input type="password" id="password" placeholder="密码"> <button type="submit">登录</button> </form> <p id="msg"></p>

注意那个 type="submit"。页面有人喜欢用 type="button" 然后绑 click 事件,登录不是页面不行,但表单的登录原生提交行为就丢了——回车键不会触发。用户输完密码习惯性敲回车,页面没反应,登录体验直接打折。

JS 部分我见过两种写法。一种是监听按钮点击,另一种是监听表单的 submit 事件。我选后者:

const form = document.getElementById('loginForm'); const msg = document.getElementById('msg'); form.addEventListener('submit', function(e) {  e.preventDefault(); const user = document.getElementById('username').value.trim(); const pass = document.getElementById('password').value; if (!user || !pass) {  msg.textContent = '用户名和密码都不能为空'; msg.style.color = 'red'; return; } // 模拟请求 if (user === 'admin' && pass === '123456') {  msg.textContent = '登录成功'; msg.style.color = 'green'; } else {  msg.textContent = '用户名或密码错误'; msg.style.color = 'red'; } });

e.preventDefault() 这行必须有。不加的话,表单会以默认方式提交,页面刷新,你写的所有 JS 状态全没了。我第一次写登录页就栽在这,调试了半天以为逻辑有问题,其实是页面跳走了。

再说 trim()。用户名前后多打一个空格,肉眼根本看不出来,但校验就是不过。加个 trim 能省掉很多“我明明输对了”的投诉。密码那边我没加 trim,因为密码里的空格可能是用户故意设的,不能随便动。

错误提示我用了一个 <p> 标签,直接改 textContent 和颜色。比 alert 好——alert 会打断操作,而且样式丑得没法改。有人用 toast 组件,那当然更漂亮,但一个简单的登录页引入一整个 UI 库,我觉得不值。

还有个容易忽略的点:按钮的禁用状态。请求发出去到返回结果之间,按钮应该置灰,防止用户狂点。哪怕你只是模拟请求,也建议加个 setTimeout 感受一下:

const btn = form.querySelector('button'); btn.disabled = true; btn.textContent = '登录中...'; setTimeout(() => {  // 校验逻辑 btn.disabled = false; btn.textContent = '登录'; }, 800);

800 毫秒是拍脑袋定的,真实场景看接口速度。关键是这个“等待态”必须有,不然用户不知道系统在干活,就会反复点。

密码框的 type="password" 也别写错。写成 text 的话,密码明文显示,旁边有人看一眼就记住了。这种低级错误在真实项目里出过,测试没覆盖到,上线后被用户截图发到群里,场面很难看。

最后说一句关于存储。登录成功后 token 放哪?localStorage 最简单,但 XSS 能直接读走。httpOnly cookie 更安全,但需要后端配合设置。纯前端页面没得选,只能 localStorage,但心里要清楚这个方案的安全边界在哪。

一个登录页,代码量不大,但每一行都有它存在的理由。写的时候多问自己一句“这行删掉会怎样”,往往就能发现被忽略的坑。

(责任编辑:知识)

推荐文章
  • owasp下载

    owasp下载 OWASP下载这事,说穿了就一句话:别去百度搜,直接进官网。但很多人就是在这第一步栽了跟头。 上个月有个朋友做安全测试,急用ZAPOWASP的渗透工具),百度一搜“OWASP下载”,点进去第二个链接, ...[详细]
  • xxs漏洞

    xxs漏洞 我盯着一台老旧的Windows XP虚拟机发呆,屏幕上那个经典的蓝天白云壁纸和绿色任务栏让我恍惚回到了2008年。光标悬停在IE6的图标上,我的手指微微发颤。点击它,就意味着我主动跳进一个早已被宣布死 ...[详细]
  • 系统漏洞修复

    系统漏洞修复 凌晨三点,我被一通电话吵醒。客户那边的财务系统瘫了,所有报表打不开。远程连上去一看,日志里躺着一行刺眼的红字:CVE-2023-XXXX。这个漏洞半个月前就有人发过通告,当时觉得影响面不大,顺手记在 ...[详细]
  • 推广方案

    推广方案 推广方案 上个月,我楼下那家开了七年的水果店突然贴出“转让”告示。老板老周蹲在门口抽烟,跟我说:“线上那帮人搞团购,价格砍到脚脖子,我拿什么跟人家拼?”三天后,隔壁小区一个刚毕业的姑娘租下店面,挂上“ ...[详细]
  • 渗透之c君恐怖游戏

    渗透之c君恐怖游戏 《渗透之c君》这游戏,我第一反应是“又是个国产恐怖解谜”。但真玩进去,后背发凉的感觉跟看jump scare视频完全两码事。 游戏开场没给你堆背景故事。你直接站在一条走廊里,灯管滋滋响,墙上挂着幅画— ...[详细]
  • 渗透电视剧全集38集免费完整版

    渗透电视剧全集38集免费完整版 《渗透电视剧全集38集免费完整版》这个标题,说白了就是冲着盗版资源去的。可你要是真点进去,大概率会撞上一堆弹窗广告、虚假链接,甚至带木马的播放器。我试过,没点两下电脑就卡得不行,杀毒软件直接报警。这剧 ...[详细]
  • skyzen寄生虫系列

    skyzen寄生虫系列 skyzen寄生虫系列,我盯了它整整三个月。这玩意儿不是传统意义上的恶意软件——它更像一条钻进宿主身体里的绦虫,安静、贪婪,而且懂得伪装。 第一次发现它是在一台服务器上。客户说系统变慢了,我登录上去, ...[详细]
  • 自学考试网官网

    自学考试网官网 自学考试网官网的首页,常年挂着一张深蓝色的横幅,上面写着“高等教育自学考试”几个白色大字,旁边是教育部考试中心的标志。这页面设计不算时髦,甚至有点老气,但那块地方,每天有几十万人点进去。他们不是来欣赏 ...[详细]
  • 佛山注册公司

    佛山注册公司 佛山注册公司,别被中介忽悠了。我自己跑过两趟行政服务中心,全程花了不到四百块,三天拿到执照。这地方跟北上广深不一样,流程没那么玄乎。 先泼盆冷水——网上那些“99元代办”的广告,基本是引流套路。他们赚 ...[详细]
  • 强短板补弱项堵漏洞

    强短板补弱项堵漏洞 车间里那台老冲床又卡了。 老师傅老周蹲在地上,拿手电筒照了半天,最后从轨道缝隙里夹出一截断掉的弹簧——都锈成黑褐色了。他说这机器买了十二年,从来没换过这个零件。我站在旁边,忽然意识到很多问题不是突然冒 ...[详细]
热点阅读