• 【html】巧妙解决input标签自动填充问题


    前言:如果是同域名网站,并且曾经在该网站下登录过账号密码,并且选择了记住账号密码。chrome浏览器会对账号密码进行自动填充功能,虽然这功能给我们提供了很多方便,但是也带来了些困扰。

     
    一、问题起始
    ①当“密码”那项input的type是text的时候并不会出现问题

    <label>
    <span>卡号:</span>
    <input type="text" name="userName" placeholder="请输入卡号" autocomplete="off">
    </label>
    <label>
    <span>密码:</span>
    <input type="text" name="password" placeholder="请输入密码" autocomplete="off">
    </label>


     

    ②当“密码”那项input的type改成password的时候,问题就出现了。

    <label>
    <span>卡号:</span>
    <input type="text" name="userName" placeholder="请输入卡号" autocomplete="off">
    </label>
    <label>
    <span>密码:</span>
    <input type="password" name="password" placeholder="请输入密码" autocomplete="off">
    </label>


    这时会发现,浏览器对input进行了自动填充,而且背景颜色变成了淡黄色,这淡黄色的背景颜色是无法修改了。为什么把input的type改成password,就会发生自动填充呢?我的猜想是chrome浏览器对type="password"进行了识别,并把"密码"项进行了填充,并且把"密码"项前面input当成了"账号"项进行了填充。

     
    二、解决方法
    <label><span></span><input type="text" name="hidden1" ></label>
    <label><span></span><input type="password" name="hidden2" ></label>
    <label>
    <span>卡号:</span>
    <input type="text" name="userName" placeholder="请输入卡号" autocomplete="off">
    </label>
    <label>
    <span>密码:</span>
    <input type="password" name="password" placeholder="请输入密码" autocomplete="off">
    </label>
    向这样,在"账号""密码"项前面添加多两个input标签,并新添的第二个input标签的type="password"看执行效果。

    这时候就可以发现,新添的两个input标签就被自动填充了,而"账号""密码"框不再会被进行自动填充了,不难得出chrome浏览器只对带password的前两个input标签自动填充。最后只需要进行收尾,把前面两个input进行隐藏就可以了。(通过网友的反馈:直接通过display进行隐藏的话,第二password还是会出现密码提示,但是通过0; height:0;的方式进行“隐藏”能很好的解决这个问题)。

    <label><span></span><input type="text" name="hidden1" style="0; height:0;"></label>
    <label><span></span><input type="password" name="hidden2" style="0; height:0;"></label>
    <label>
    <span>卡号:</span>
    <input type="text" name="userName" placeholder="请输入卡号" autocomplete="off">
    </label>
    <label>
    <span>密码:</span>
    <input type="password" name=password" placeholder="请输入密码" autocomplete="off">
    </label>


     

    三、解决方法(2)
    <label>
    <span>卡号:</span>
    <input type="text" name="userName" placeholder="请输入卡号" autocomplete="new-password">
    </label>
    <label>
    <span>密码:</span>
    <input type="password" name=password" placeholder="请输入密码" autocomplete="new-password">
    </label>
    有网友提供了新的方法来解决该问题(通过给input标签条件autocomplete="new-password"),发现也能解决这个问题,至于有无其他的衍生问题,博主并没有去检验了,觉得第一种方法太麻烦的朋友,不妨可以试试该种方法。
    ————————————————
    版权声明:本文为CSDN博主「汪小穆」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/w390058785/java/article/details/80512591

  • 相关阅读:
    下载图片
    wx.requestSubscribeMessage
    服务器布置
    网站更换服务器出现加载不了js css文件的问题
    用git创建仓库关联本地项目,又一直上传不上去
    今天发布MVC项目一直找不到页面
    vs nuget找不到包
    vue cli更新
    ExecuteNonQuery()返回受影响行数不适用select语句
    ASP.NET(C#)返回上一页(后退)代码
  • 原文地址:https://www.cnblogs.com/ygunoil/p/12765441.html
Copyright © 2020-2023  润新知