vue+elementUI 不验证input中输入空格问题

博客指出Element自带表单必填项校验不能去除空格,输入空格时required: true验证仍可通过。可在v-model加上.trim解决,但它只适用于字符中间无空格的情况,还分别展示了未加和加上.trim时输入空格的验证结果。

element中自带的表单必填项校验不能去除空格,此时若输入空格,required: true验证还是可以通过。若想正确校验需要去除字符两边的空格。在v-model加上.trim就可以解决。但v-model.trim只适应字符中间没有空格的情况,若字符中间需要空格就有问题
一、未加.trim()

<el-form :rules="rules">
     <el-form-item label="姓名" prop="name">
        	<el-input size="small" v-model="form.name" placeholder="请输入姓名"></el-input>
     </el-form-item>
</el-form>

rules: {
	name: [{ required: true, message: '名称不能为空', trigger: 'blur' },]
}

输入空格后验证结果: 验证通过
二、加上.trim

<el-form :rules="rules">
     <el-form-item label="姓名" prop="name">
        	<el-input size="small" v-model.trim="form.name" placeholder="请输入姓名"></el-input>
     </el-form-item>
</el-form>

rules: {
	name: [{ required: true, message: '名称不能为空', trigger: 'blur' },]
}

输入空格后验证结果: 验证不通过

<think>好的,用户的问题是关于ElementUIinput组件如何绑定失焦事件(blur)的使用方法和示例。首先,我需要回忆一下ElementUI的文档和相关知识。根据之前的引用内容,用户提到了Vue2的Element UI和Vue3的Element Plus的区别,但这里用户明确提到了ElementUI,所以应该是Vue2的情况。 首先,确认一下ElementUIel-input组件的事件。常见的表单事件包括input、change、focus、blur等。用户需要的是blur事件,也就是当输入框失去焦点时触发的事件。接下来需要找到如何在el-input组件上绑定这个事件。 在Vue中,通常使用v-on指令或者@符号来监听事件。对于原生事件,有时候需要添加.native修饰符,但ElementUI的组件可能已经封装了这些事件,所以可能需要直接使用或者通过特定方式绑定。根据引用[2]中的内容,Element UI的el-input组件在Vue2中的事件包括blur,所以用户可以直接使用@blur来绑定方法。 然后,需要考虑如何编写示例代码。比如,在模板中,给el-input添加@blur="handleBlur",然后在methods里定义handleBlur方法。同时,可能需要传递参数,比如事件对象event或者当前值。这里需要注意的是,ElementUI的事件处理可能会传递同的参数,例如blur事件可能传递的是事件对象,而input事件传递的是当前值。需要确认这一点是否正确。 另外,用户可能需要验证输入,比如在失焦时进行表单验证。这时候可以结合el-form和el-form-item使用,通过rules属性来定义规则,并在blur事件时触发验证。这样示例会更全面。 还需要注意是否需要阻止默认行为或者进行其他操作,比如格式化输入内容。例如,在失焦时自动去除空格或者转换大小写,这可以通过在handleBlur方法中修改绑定的数据来实现。 检查是否有常见的错误,比如忘记在methods中定义处理函数,或者错误地使用修饰符。同时,要确保示例代码的语法正确,比如使用v-model绑定数据,正确的事件名称等。 最后,总结步骤:在el-input上使用@blur绑定方法,定义处理函数处理逻辑,可能需要结合表单验证。给出两种示例,一种是基本用法,另一种是结合表单验证的情况,并提醒用户注意事项,比如是否需要.native修饰符(根据文档,可能需要,因为ElementUI已经暴露了blur事件)。同时,参考引用[2]中的内容,确保信息准确。</think>### Element UI Input 组件失焦事件(blur)使用方法 在 Vue 2 的 Element UI 中,`el-input` 组件支持通过 `@blur` 事件监听失焦操作,常用于表单验证或数据处理。以下是具体实现方法: --- #### 1. 基础用法 ```vue <template> <el-input v-model="inputValue" placeholder="请输入内容" @blur="handleBlur" // 绑定失焦事件 ></el-input> </template> <script> export default { data() { return { inputValue: '' }; }, methods: { handleBlur(event) { console.log('失焦触发,当前值:', this.inputValue); // 可在此添加验证逻辑 } } }; </script> ``` --- #### 2. 结合表单验证 若需在失焦时触发表单验证,可配合 `el-form` 使用: ```vue <template> <el-form :model="form" :rules="rules" ref="formRef"> <el-form-item label="用户名" prop="username"> <el-input v-model="form.username" @blur="validateField('username')" // 失焦时触发指定字段验证 ></el-input> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { username: '' }, rules: { username: [{ required: true, message: '用户名不能', trigger: 'blur' }] } }; }, methods: { validateField(field) { this.$refs.formRef.validateField(field); // 手动触发单个字段验证 } } }; </script> ``` --- #### 注意事项 1. **事件参数**:`@blur` 默认传递原生 DOM 事件对象,若需要获取输入值可直接通过 `v-model` 绑定的变量(如 `this.inputValue`)[^2]。 2. **与 `@change` 区别**:`@blur` 在失焦时触发,而 `@change` 在值变化且失焦后触发。 3. **修饰符**:需要添加 `.native`,因为 Element UI 已封装该事件[^2]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值