问题
今天在盘后台代码的时候突然发现了一个小bug,如果在登录的时候使用了浏览器的记住账户密码的功能,那么表单中如果有 el-input 的 type值为 ‘password’ 的时候,进行添加信息的时候 发现 密码账号自动填充。
<el-input v-model="userForm.userPwd" type="password"></el-input>
过程
之前网上搜有说添加 autocomplete="off"
可以避免这个问题,调试的时候发现有bug,首次点开还会被浏览器自动填充账户密码,第二次点开才不自动填充。而且看了一下el-input 的源码,在源码中,autocomplete 属性的值默认为 ‘off’,具体如下:
autocomplete: {
type: String,
default: 'off'
},
/** @Deprecated in next major version */
autoComplete: {
type: String,
validator(val) {
process.env.NODE_ENV !== 'production' &&
console.warn('[Element Warn][Input]\'auto-complete\' property will be deprecated in next major version. please use \'autocomplete\' instead.');
return true;
}
}
最终解决
配置 加上了 auto-complete="new-password"
属性解决,具体代码如下:
<el-input v-model="userForm.userPwd" type="password" auto-complete="new-password"></el-input>
注意:
本次使用的elementUI 的版本为2.13.2 ,el-input的源码中说明了在下一个主要版本中弃用 autoComplete
属性,所以,在实际使用中应当注意版本问题。