Element ui中error属性的使用(只触发一次的解决办法)

需求:在输入框中输入Id后发起后端请求,后端接口返回报错时表单下面提示一个错误信息
实现下图效果:
在这里插入图片描述

解决方法:在el-form-item中使用error属性,绑定一个errormsg,当后端有报错时,给该errormsg赋值(注意点是,在blur事件里面要先对errormsg清空,不然同样的只会触发一次报错
官方文档

代码如下:

<el-form-item label="商品ID" prop="spuId" :error="errorMsg">
            <el-input v-model="form.spuId" class="w300" @blur="getSku()" @input="form.spuId = form.spuId.replace(/[^\d]/g, '')" />
</el-form-item>

```javascript
getSku(val) {
      this.errorMsg = '' //这里需要清空下,不然同样的报错只会报一次
      const spuId = val || Number(this.form.spuId)
      if (!spuId) {
        this.errorMsg = '您输入的商品编号有误,请重新输入'
        return
      }
      this.options = []
      getSkuDetail({ spuId: spuId }).then(res => {
        this.skuVOS = res.data.skuVOS
        // 省略一些接口返回后的其他业务代码。。
      }).catch(err => {
        console.log(err)
        this.errorMsg = '您输入的商品编号有误,请重新输入'
      })
    }

到这里还没有结束,另外有一个需求是验证不满足时没有错误提示,但是要显示红框。
一开始我用同样的方法,但是在errormsg里面传入的是一个空格,在blur方法里面也清空了errormsg的值,但还是只能触发一次红框,最后多次尝试后,添加一个定时器,就能多次显示了:

blurMethod(){
	this.errorMsgOther = ''
	if(somecode) {
		setTimeout(()=>{
			this.errorMsgOther = ' '
		},300)
	}
}```

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]的代码是一个使用Element UI的表单组件的示例,其包含了一个年龄输入框。在这个示例,如果年龄为空或者不是整数,会显示相应的错误信息。这个示例的错误信息是通过自定义的验证函数来实现的。 引用\[2\]的代码也是一个使用Element UI的表单组件的示例,其包含了一个商品ID输入框。在这个示例,当输入框失去焦点时,会触发一个函数来获取商品的详细信息。如果输入的商品编号有误,会显示相应的错误信息。 根据引用\[3\]的解决方法,可以在el-form-item组件使用error属性来绑定一个errorMsg变量,当后端返回错误时,给errorMsg赋值。在blur事件需要先清空errorMsg,以便在下一次触发错误时能够正确显示错误信息。 综上所述,Element UI的表单组件可以通过设置error属性和绑定相应的errorMsg变量来显示错误信息。 #### 引用[.reference_title] - *1* [element-ui form表单校验 失败的原因](https://blog.csdn.net/qq_44886562/article/details/128445363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Element uierror属性使用(只触发一次解决办法)](https://blog.csdn.net/weixin_46967036/article/details/119801555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值