Element和AntD表单自动填充账号密码,如何清除?

背景

最近有业务向产品反馈,每次点击文本框或者下拉框时,都会自动填充一堆账号密码,严重影响系统的使用体验,于是产品咨询前端开发,希望把这个问题处理掉。

问题截图如下:

问题修复

Element的表单组件如el-inputel-select等,在中后台系统中,往往都会自动填充曾登录过的账号密码。

网上实际上有很多方案,但是几乎没有找到一个靠谱的,比如:

  • 修改type=search,经验证:无效。
  • 修改autocomplete="off",经验证:无效。
  • 修改autocomplete="new-password",经验证:无效。
  • 使用脚本处理密码输入框,根据输入内容进行分割处理。可以解决,但开发过于复杂,同时账号自动填充并不仅仅发生在密码框中,文本框也会自动填充。

目前发现有一种相对简单的做法:

  1. 在文本框的下面再定义一个文本框,但是需要屏蔽文本框不显示。
html 复制代码
<el-select
  v-model="currentCompany"
  filterable
  placeholder="请选择"
  style="border-radius:2px;overflow:hidden;"
>
  <el-option
    v-for="(item, index) in authStaffComList"
    :key="index"
    :label="item.name"
    :value="item.id"
  >
  </el-option>
</el-select>
</template>
<!-- 解决账号被自动填充问题 -->
<el-input type="text" style="position: absolute;z-index: -999;"/>
  1. 为了不影响业务功能,需要设置样式,隐藏该文本框。
html 复制代码
<!-- 解决账号被自动填充问题 -->
<el-input type="text" style="position: absolute;z-index: -999;"/>
  1. 页面测试,通过

再次点击下拉框,填充密码消失,问题解决。

为什么?

其实,我们并没有彻底解决,我们只是做了移花接木,不信你看。

  1. 打开网站,隐藏索引

关闭z-index后,文本框会显示出来。

  1. 点击文本框,密码又出来了。

所以,我们只是把账号密码填充功能,移到了另外一个文本框上面而已,本身并没有通过技术的手动彻底解决浏览器自动填充问题。

末尾

好了,我是河畔一角,一个普通的前端工程师。记录一个小问题,希望能够帮到遇到同样问题的你,祝你生活愉快,前程似锦。

相关推荐
tech_zjf13 分钟前
当 AI 把 Next.js Route 越写越快:我为什么做了 next-route-kit
前端·后端
常宇佳16 分钟前
vue3 @代指src路径设置
前端·typescript·vue
砚凝霜32 分钟前
软考网络工程师|案例分析:Eth‑Trunk 链路聚合、iStack 堆叠、CSS 集群核心考点总结
前端·css·网络
二级小助手43 分钟前
二级Web前端选择题高频真题20道与考场避坑笔记
javascript·css3·html5·web前端·计算机二级·二级web·web真题
珐恩AI-人工智能1 小时前
大模型意图召回偏差分析:GEO如何解决“有收录却不触发问答曝光”的难题
大数据·前端·人工智能·html·流量运营·geo优化
程序员老赵1 小时前
Docker 部署禅道 ZenTao:轻松搭建研发项目管理平台
前端·后端·github
前端小卡拉1 小时前
用了大半年 AI 编程工具,我才搞懂 Skill 到底是什么
前端·javascript
hunterandroid1 小时前
[鸿蒙从零到一] HarmonyOS 单元测试与 UI 自动化测试实战:从代码质量到用户体验的全链路保障
前端
郭邯1 小时前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript
阿奇__1 小时前
微前端、iframe与Auth Code技术方案对比
前端