Element UI表单自定义校验方法

引言

最近遇到一个前端页面表单的校验问题,就是数据库里存的是一个json字符串,然后前端页面展示的时候需要解析为表单的字段,同时需要对内容做非空的校验。
作为一个会一点前端的后端开发人员,我只能两眼一抹黑,看了一下前辈们写的代码,没有看到类似的解决方案,于是只能打开百度搜索一下。
最终皇天不负有心人,在经过了一段时间的分析、研判和尝试后,还算完美的解决了这个问题。

正文

首先,搞一个自定义的表单元素:

<el-form-item
  label="账号"
  :prop="'CDEAccount' + index"
  :rules="{
    required: true,
    fieldValue: item.account,
    validator: judgeCDE,
    trigger: 'blur'}">
  <el-input v-model="item.account" autocomplete="off" placeholder=""/>
</el-form-item>

其中item就是json字符串接解析后生产的对象,acount就是这个对象的一个属性,页面展示为表单的一个字段。
需要注意以下几个问题:
:prop 这个属性一定要定义,不然不会触发表单的自动校验功能。
fieldValue 设置为该字段的值,之后可以在校验方法中获取到。
judgeCDE 就是自定义的校验方法。

然后,就是自定义的校验方法了:

judgeCDE(rule, value, callback) {
  if (rule.required == true && !rule.fieldValue) {
    return callback(new Error('Required'))
  } else {
    callback()
  }
}

方法中的判断条件一定不要忘了 rule.required ,不然不管 rule.fieldValue 有没有值,校验可能都过不了了。

最后,就可以实现字段值非空的校验了,当然同理应该也可以实现其他的校验功能:
在这里插入图片描述

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Element UI中进行表单校验,可以按照以下步骤操作: 1. 在el-form元素上添加校验规则字段rules,并将其绑定到一个对象上。例如,在data中定义一个名为rules的对象,并将其绑定到el-form上::rules="rules"。 2. 在script标签中定义rules对象,并在该对象中添加要校验的字段及其校验规则。每个字段的校验规则是一个数组,包含一个或多个校验规则对象。例如,要校验用户名字段,可以使用以下格式进行配置: ``` rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' } ] } ``` 这个例子中的校验规则要求用户名字段不能为空,且在表单失去焦点时触发校验。你可以根据需求自定义校验规则。 3. 在el-form-item元素内部的el-input组件上添加需要校验的字段名。例如,要校验用户名字段,可以在el-input上添加prop属性并将其值设置为"username"。 4. 如果还需要在提交表单时进行整体校验,可以使用el-form组件的validate方法。在点击提交按钮或其他触发表单提交的事件时,调用validate方法即可。例如,可以在按钮的点击事件中添加以下代码: ``` this.$refs.form.validate((valid) => { if (valid) { // 表单校验成功,执行提交操作 } else { // 表单校验失败,给出相应提示 } }); ``` 这个例子中的代码会对整个表单进行校验,并在校验完成后的回调函数中判断校验结果。如果valid为true,则表示校验通过;如果valid为false,则表示校验不通过。 以上是在Element UI中进行表单校验的基本步骤。你可以根据实际需求自定义校验规则,并根据校验结果进行相应的处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值