终极解决版 element-ui input=password 在浏览器会自动填充密码的问题

写项目时发现, 在注册用户界面时, 之前浏览器记住的账号被自动填充了, 并且因为公司项目有做密码的显示隐藏功能, 然后用户就能直接看到密码了, 这肯定不行. 超级大的问题. 于是就是百度了一圈.

发现目前现在看到的解决方案有几种(下面做了归纳), 但是都无法解决我的问题:

1.设置 autocomplete属性;



2.添加readonly&onfocus =“this.removeAttribute('readonly')



3.在上面挂在N多事件, 这个就不贴代码了, 看的头稀荤

以上都试过了, 反正我用起来没用.

最后附上我的解决方案:

直接使用type类型+替换功能, 把当前输入的密码替换成 '●', 然后在保存一份, 在明文显示的时候, 就使用保存的那一份

代码如下:

// openPassword 是我项目中做显示隐藏的功能



          
          
data() {
     return{
         openPassword: false,
         passwordSymbol: '',
         from: {
            password: ''
         }
     }
 },
methods: {
    inputDataConversion (value) {
          const newValue = value.replace(/●/g, '')
          newValue ? this.form.password += newValue : null
          let data = "";
          for (let i = 0; i < value.length; i++) {
            data += '●';
          }
          this.passwordSymbol = data;
    },
    checkOpenPassword(){
        this.openPassword = !this.openPassword
        console.log(`this.openPassword `, this.openPassword)
        if (!this.openPassword) {
          let data = "";
          for (let i = 0; i < this.form.password.length; i++) {
            data += '●';
          }
          this.passwordSymbol = data
        }
    }
}

你可能感兴趣的:(elementui,vue.js,javascript)