解决input自动填充的问题

本文主要讨论了在谷歌浏览器中遇到的input自动填充问题,该问题可能由于浏览器的记住密码功能引起。虽然一些解决方案可以阻止自动填充,但会导致登录页面无法便捷地填充账号和密码。作者提出了一种方法,即在表单中添加一个隐藏的密码框来解决这一矛盾。此外,还提到了通过JavaScript控制input的type属性变化的替代方案,但认为这种方法较为复杂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题在谷歌浏览器中出现,最终解决。这个问题查了一些资料说是谷歌浏览器的一个bug,并且一直不解决,不知道其他浏览器有没有,没做测试。

出现自动填充大多是因为记住密码的问题而导致,网上的一些方法说这样设置就没没问题了。

用户名:<input type='text' autocomplete='off'> 
密码:<input type='password' autocomplete='new-password'>

这样做的确能解决自动填充的问题,但是登录页就没办法自动填充账号密码,用户就得手动输账号密码登录了。

我的解决方法是在表单元素前添加一个隐藏的密码框,如果password不行就换text试试

<input type="password" style="display: none;">

网上还有一种方法是js去控制,就是用户点击输入框的时候对input的type类型进行变化,个人觉得比较繁琐

在使用Vue框架的el-input组件时,浏览器自动填充可能会造成一些问题。浏览器自动填充是浏览器根据用户之前的输入记录和记住密码等信息自动填充输入框内容的功能。但是这个功能也许符合我们的需求,所以需要解决这个问题解决浏览器自动填充的方法有以下几种: 1. 屏蔽自动填充:可以通过设置input标签的autocomplete属性为off来禁止自动填充。 ```html <el-input v-model="inputValue" :autocomplete="'off'" ></el-input> ``` 2. 修改input事件:通过监听input事件,手动更新数据模型中的值,这样可以覆盖浏览器自动填充的内容。 ```html <el-input v-model="inputValue" @input="handleInput" ></el-input> ``` ```javascript methods: { handleInput() { this.inputValue = this.$refs.input.value; // 获取input框的值并更新数据模型 }, }, ``` 3. 利用setTimeout延迟设置值:使用setTimeout可以使得设置值操作在下一次事件循环开始,从而避免被浏览器自动填充的值覆盖。 ```javascript mounted() { setTimeout(() => { this.inputValue = ''; }, 0); }, ``` 4. 结合JavaScript和Vue的解决方案:在mounted钩子函数中使用JavaScript的代码将input框的值清空,并将其焦点移至其他input元素。 ```javascript mounted() { let input = document.getElementById('inputId'); input.value = ''; let otherInput = document.getElementById('otherInputId'); otherInput.focus(); }, ``` 这些方法可以有效解决浏览器自动填充所带来的问题,根据需要选择适合的解决方案即可。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不要葱花

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

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

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

打赏作者

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

抵扣说明:

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

余额充值