如何解决el-input一输入内容就触发blur事件

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(); // 让输入框主动失焦
    }
  },
}
  • 这篇博客: 前端开发中遇到的问题及解决方法中的 在input事件中,添加blur()方法 当元素失去焦点时发生 blur 事件,即可解决获取不到 苹果手机中文键盘下 输入的信息 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • data() {
    			return {
    				login: {
    					acount: '', //输入登录账号
    				},
    			}
    },
    methods:{
    		acount(e){
    				this.login.acount = e.detail.value
    		},
    }