解决 input type=“password“ 标签自动记住账号密码问题

"本文介绍了一种防止HTML输入框自动记住密码的方法,通过将`<input type="password">`改为`<input type="text">`并自定义显示方式,将真实密码存储为属性值。在用户输入时,监听`input`事件,实时更新显示的星号(●)和隐藏的真实密码。此方法同时处理了光标位置的问题,确保在Windows 8系统中光标不会总移动到输入框末尾。"

html 解决 input type="password" 标签自动记住账号密码问题

主要实现逻辑

把input type=“password” 改成 type=“text” ,隐藏input密码,用 ‘●’ 代替input中的内容,把真实密码存到input标签的一个属性中实现,下面的逻辑,每次input框中内容变化,获取真实密码逻辑如下:

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
	<form id="editPasswordForm" autocomplete ='off'>
		<input type="text" class="form-control validate[required]" autocomplete ='off' id="mopwd" mopwd="" placeholder="请输入原密码"/>
		<input type="text" class="form-control validate[required]" autocomplete ='off' id="newpwd1" newpwd1="" placeholder="请输入新密码"/>
		<input type="text" class="form-control validate[required]"  autocomplete ='off' id="newpwd2" newpwd2="" placeholder="请再次输入密码"/>
	</form>	
</body>
<script>
	$("#mopwd").on('input',function () {
   
   
	    var<
<think>好的,我现在需要解决用户在Element UI中input框禁止浏览器自动填充的问题。用户提到使用auto-complete="new-password",但可能还有一些细节需要注意。首先,我应该回顾一下用户提供的引用内容,看看有哪些解决方案已经被提出。 引用[1]和[3]都提到在typepassword的el-input上添加auto-complete="new-password"属性,这似乎是一个直接的解决方法。引用[2]和[4]则讨论了非密码框的情况,可能需要不同的处理方式。比如,对于普通的输入框,除了设置auto-complete,可能还需要将type设置为text,并结合autocomplete="off"来防止自动填充。此外,动态生成随机ID可能也是一个有效的方法,避免浏览器根据固定的id或name属性填充历史数据。 接下来,我需要确保提供的代码示例正确无误,并且覆盖不同的场景。对于密码框,使用type="password"并添加auto-complete="new-password"是正确的。而对于普通输入框,可能需要结合type="text"和autocomplete="off"。同时,动态ID的方法可以进一步防止浏览器识别表单结构。 还需要考虑用户可能遇到的问题,比如某些浏览器可能忽略autocomplete设置,这时候动态生成ID或随机属性可能更有效。此外,样式问题也需要处理,比如隐藏浏览器的密码提示图标,可以通过CSS调整。 最后,生成的相关问题需要涵盖不同场景,帮助用户应对各种可能的情况,比如普通输入框的自动填充、样式调整以及浏览器兼容性问题等。确保每个建议都有对应的引用支持,比如引用[2]和[4]提到非密码框的处理,而引用[1]和[3]专注于密码框的情况。 总结步骤:确认解决方案的正确性,覆盖不同输入类型,提供代码示例,处理潜在问题,生成相关问题,并正确引用来源。</think>### 解决方案 在Element UI中禁止浏览器自动填充账号密码,可通过以下方法实现: #### 1. **密码输入框禁止自动填充** 针对`type="password"`的输入框,添加`auto-complete="new-password"`属性: ```html <el-input type="password" v-model="form.password" auto-complete="new-password" ></el-input> ``` 此属性会告知浏览器不要填充历史密码,适用于密码输入场景[^1][^3]。 #### 2. **普通输入框禁止自动填充** 对于非密码输入框(如用户名、邮箱),需结合以下方法: - **设置`type="text"`和`autocomplete="off"`**: ```html <el-input type="text" v-model="form.username" autocomplete="off" ></el-input> ``` 部分浏览器可能忽略`autocomplete="off"`,需进一步处理[^2][^4]。 - **动态生成随机`id`或`name`属性**: 浏览器常通过固定`id`或`name`(如`username`、`password`)触发填充,动态生成随机属性可绕过识别: ```html <el-input :id="'input-' + Math.random()" type="text" v-model="form.username" ></el-input> ``` #### 3. **隐藏浏览器密码提示图标** 若输入框右侧出现历史密码提示图标,可通过CSS隐藏: ```css .el-input::-webkit-credentials-auto-fill-button { display: none !important; } ``` ### 注意事项 - **浏览器兼容性**:不同浏览器对`autocomplete`的支持有差异,建议结合动态属性和样式调整[^2]。 - **表单结构**:避免在表单中使用`username`、`password`等敏感字段命名,改用`account`、`pwd`等替代[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxt_ds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值