el-input一输入内容就触发blur事件,如何解决
v-model="item.name" :placeholder="`${item.name}`" @blur="checkBlur($event)">
blur换成change(失去焦点时触发)
引用自chatGPT:
在使用el-input组件时,如果每次输入内容都会触发blur事件,可能是因为你在绑定v-model时将debounce属性和blur事件绑定在了一起,可以按照以下步骤进行排查和解决:
检查el-input组件的绑定方式,确保v-model和blur事件没有绑定在同一个属性上。
如果你使用了debounce属性来控制输入的延迟,可以检查debounce的值是否为0或者没有设置,默认情况下debounce属性的值为300,如果将debounce的值设置为0,输入内容会立即触发blur事件。
可以尝试将debounce属性和blur事件分开绑定,例如:
<el-input v-model="value" :debounce="300" @blur="handleBlur"></el-input>
如果以上方法都无法解决问题,可以尝试检查其他相关代码,例如是否在handleBlur方法中调用了this.$refs.xxx.blur()等操作,这些操作可能会导致输入框失去焦点。
通过以上步骤,应该可以解决el-input组件一输入内容就触发blur事件的问题。
一输出内容就需要有所响应,应该使用onchange事件,即要给el-input添加@chagne = "handleChange"
想要主动触发blur事件,可以让调用该元素的blur()方法,让其失焦。
<input
maxlength="6"
placeholder="请输入验证码"
type="tel"
v-model="verification"
@input="complete"
/>
methods: {
complete(e) {
if(this.verification.length>=6) {
e.srcElement.blur(); // 让输入框主动失焦
}
},
}
data() {
return {
login: {
acount: '', //输入登录账号
},
}
},
methods:{
acount(e){
this.login.acount = e.detail.value
},
}