React中禁止chrome填充表单
总结:在react中浏览器只会在第一次初始化dom树时将默认的用户名和密码渲染上(只有当页面中存在密码框时才会进行,所以react有如下解决方法)
当 input 的 type="password" 时,chrome浏览器会以 type="password" 为标识记住输入的用户名和密码,
如果chrome用户选择记住密码,chrome会把输入过的用户名、密码填充到表单中;
在React中,以下2中方法都不能解决问题:
1.在表单前增加2个input并隐藏
<input type="text" style="display:none"/> <input type="password" style="display:none"/>
2.添加 autocomplete="off" 属性
<input type="password" autocomplete="off"/>
React不推崇Dom操作,通过state切换type的值来阻止浏览器的填充行为。
// 初始化state,组建初次渲染时type="text",浏览器不会对表单做填充行为
constructor(props) { super(props); this.state = { type: 'text' }; } ... // 点击表单后,改变type changeType = () => { this.setState({ type: 'password' }); } ... render() { return (
...
<Input type={this.state.type} onClick={this.changeType}/>
... ) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?