禁止浏览器默认填充密码会和我的样式冲突 所以禁止
第一种:
通过给表单元素添加 autocomplete="off"
属性,
可以防止浏览器自动填充表单中的账号和密码。可以在 input
标签或整个 form
标签上使用:
<template><a-form><a-form-item label="账号"><a-input v-model="username" autocomplete="off" /></a-form-item><a-form-item label="密码"><a-input v-model="password" type="password" autocomplete="off" /></a-form-item></a-form>
</template><script>
export default {data() {return {username: '',password: ''};}
};
</script>
为密码输入框动态设置 name
属性
有时仅仅使用 autocomplete="off"
不能完全阻止浏览器自动填充。你还可以为账号和密码的输入框动态设置 name
属性,使浏览器难以识别这些字段。例如:
getDynamicName(field) {// 根据当前时间动态生成name属性,避免浏览器识别return `${field}_${Date.now()}`;}
第二种
将 input
的 readonly
属性设置为 true
,然后在 mounted
钩子中取消 readonly
状态
<template><a-form><a-form-item label="账号"><a-input v-model="username" :readonly="isReadonly" @focus="removeReadonly" autocomplete="off" /></a-form-item><a-form-item label="密码"><a-input v-model="password" type="password" :readonly="isReadonly" @focus="removeReadonly" autocomplete="off" /></a-form-item></a-form>
</template><script>
export default {data() {return {username: '',password: '',isReadonly: true};},methods: {removeReadonly() {this.isReadonly = false;}}
};
</script>