禁止 input 自动填充
在编写 Form 表单样式的时候,修改自动填充后的 input 样式是很麻烦甚至不可行的,而且还有一些不需要自动填充的场景。
浏览器根据保存数据时表单控件的 type 和 name 去匹配。
常用的就是 type 为 password,name 为 emal、username、password、telephone 等,甚至不设置 name。
浏览器会在表单加载时候匹配到之前保存的表单空间,然后将保存在客户端的信息自动填充它,额外的数据可能会填充到相邻的表单控件中。
可以通过设置 autocomplete 为 off 关闭自动填充功能。
input 的 autocomplete 表示这个控件的值是否可被浏览器自动填充,设置为 off 表示用户必须手动填值,或者该页面提供了自己的自动补全方法。浏览器不对此字段自动填充。。
但是,当表单控件获取焦点时,浏览器仍会显示自动填充提示(选项框)。
而且实际情况下 type 为 password 的表单控件即便设置了 autocomplete="off" 也不能有效禁止自动填充(大部分下不起作用)。
幸运的是将 autocomplete 设置为 new-password 可以成功禁止,它表示新密码(如创建帐号或更改密码时使用)。

方案总结
要想禁止表单控件的自动填充功能,可以给这个 input 添加 autocomplete="new-password" 的属性,一个表单中如果存在多个 type="password" 只需给其中一个(无论哪一个)设置这个属性即可全部禁止。
设置 new-password 也可以禁止浏览器弹出自动填充提示,包括 type="password" 以外的控件。

来源:https://blog.csdn.net/Andrew_Chenwq/article/details/127237282

问题描述:
通常在前端开发的过程中,使用表单中加入输入框来实现登录注册是十分常见的,一些浏览器就会默认填充我们曾经使用过的账号密码,这个处理方式对于登录的时候是非常方便,但是对于注册页面,显然自动填充就非常鸡肋。
博主在解决这个自动填充问题的时候用了以下几种方法,都没有很完全的得到解决(不同浏览器兼容性问题),本人使用的是谷歌浏览器

  1. 在form表单中或者input标签里面添加auto-complete="off"(没有解决)

    <el-form autocomplete="off">
     <el-form-item>
         <el-input
             prefix-icon="el-icon-user-solid"
             v-model.trim="registerForm.account"
             clearable
             autocomplete="off"
             >
         </el-input>
     </el-form-item>
    </el-form>
  2. 在input 里面加上 autocomplete=“new-password” 属性(没有解决)

    <el-form>
     <el-form-item>
         <el-input
             prefix-icon="el-icon-user-solid"
             v-model.trim="registerForm.account"
             clearable
             autocomplete="new-passowrd"
             >
         </el-input>
     </el-form-item>
    </el-form>
  3. 直接上代码(没有解决)

    $(function(){
     $('#setaccount input').attr("readonly","readonly");//让from表单下所有的input输入框都是只读状态(#setaccount是方法2里面from表单的id)
     $('#setaccount input').click(function(){//当某个被input框点击的时候,就删掉被点击的这个input框的只读属性readonly
         $(this).removeAttr("readonly");
     });
    });

    ! 然后博主发现了一种终极解决方法,分享给遇到同样问题的各位
    ✅使用readonly属性和foucs方法联合搭配,当浏览器打开页面的时候,将输入框设为只读,当鼠标聚焦到输入框的时候再给它放开。

    tips:readonly 属性规定输入字段为只读
    
    <el-form>
     <el-form-item>
         <el-input
             prefix-icon="el-icon-user-solid"
             v-model.trim="registerForm.account"
             clearable
             :readonly="readonlyInput"
             @focus="cancelReadOnly()"
             >
         </el-input>
     </el-form-item>
    </el-form>
    
    
    readonlyInput: true,
    cancelReadOnly () {
     this.readonlyInput = false;
    },

    希望这种方法能够帮助到各位!💖

来源:https://blog.csdn.net/qq_44833124/article/details/129119756