如何禁止表单input自动填充用户名密码

1. 说明

  • 本文使用的Chrome版本是51.0.2704.106
  • 本文使用的FireFox的版本是49.0.2

2. 问题

在某个非登录的页面只有一个<input type="text">和一个<input type="password">,然后Chrome浏览器就默认填充了用户名和密码,现在需要阻止浏览器的自动填充。

3. 尝试解决

  1. 首先搜索到以下结果:

    参考链接:如何禁止(表单)用户名、密码自动填充——大宝日记

    • Mozilla 官方文档建议

      Mozilla developer documentation 建议使用表单设置属性 tautocomplete=”off” 来阻止浏览器从cache获取数据填充登录表单。

      <input type="text" name="foo" autocomplete="off" />
      

      但是这种方案不兼容某些Chrome、Firefox。

    • 兼容所有浏览器

      最终决定使用使用隐藏input来接受浏览器自动填充,这样不会影响用户体验,也可以兼容所有浏览器。

      <input style="display:none"><!-- for disable autocomplete on chrome -->
      <input type="text" id="username"  name="username"  autocomplete="off">
      

    但是实际上在Chrome上并没什么用,在FireFox上也只能阻止用户名自动填充。

  2. 接着搜索,又发现了个新东西

    <input type="password"  autocomplete="new-password">
    

    把password的autocomplete属性由off变成了new-password,发现Chrome不自动填充了,但是FireFox上仍然会填充用户名

  3. 再接着结合第一点尝试,最后结果是使用以下方式

    <input type="password" style="display: none;"/>
    <input type="text" autocomplete="off"/>
    
    <input class="form-control" type="password" name="tradePassword" id="txPassword" autocomplete="new-password"
    

    这样在Chrome和FireFox上就都不会填充了。

转载于:https://my.oschina.net/u/3502397/blog/908663

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值