关于element-ui中el-form自定义验证(调用后端接口)

 更新时间:2022年07月31日 08:56:36   作者:HoShining  
这篇文章主要介绍了关于element-ui中el-form自定义验证(调用后端接口),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

element-ui中el-form自定义验证

需求

在输入项目名称后,调用后端接口isNameOnly,若已存在,则效果如下图:

1.先设置校验规则rules

<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" 
class="demo-ruleForm">

2.在return中定义

// 判定规则
                rules: {
                    taskName: [{
                            required: true,
                            message: '请输入项目名称',
                            trigger: 'blur'
                        },
                        {
                            min: 3,
                            max: 15,
                            message: '长度在 3 到 15 个字符',
                            trigger: 'blur'
                        },
                        {
                            required: true,
                            trigger: 'blur',
                            //validatePass --- 我们自定义的校验规则
                            validator: validatePass  
                        }
                    ],
                },

3.在data中添加如下代码:(注意,以下代码和return同级)

const validatePass = (rule, value, callback) => {
                this.$depot.get({
                    url: '/isNameOnly',
                    config: {
                        params: {
                            taskName: 1,
                            userId: 1)
                        }
                    },
                    cb: (res) => {
                        this.nameOK = res.data == 1 ? true : false	
                    }
                })
                if (this.nameOK != false) {
                    callback()
                } else {
                    callback(new Error('经验证,该项目已存在于数据库中'))
                }
            }

4.method定义提交表单方法

// 提交表单数据
            submitForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        this.$message({
                            message: '恭喜你!项目创建成功!',
                            type: 'success'
                        });
                    } else {
                        this.$message({
                            message: '请按照提示正确输入信息后再创建!',
                            center: true
                        });
                    }
                });
            },

element-ui自定义form表单校验规则

HTML:

<el-form
    ref="form"
    label-width="120px"
    :rules="rules"
    :model="ruleForm"
        >
 <el-form-item
     label="身份证号"
     size="mini"
     class="part"
     prop="id_card"
   >
     <el-input
       v-model="ruleForm.id_card"
     ></el-input>
 </el-form-item>
 </el-form>

注意

使用校验规则的表单,在data中定义的时候必须要放在一个对象中,:model="ruleForm"这行代码一定要写,不写不生效!

js:

export default {
  name: "",
  data() {
  //自定义校验规则
    var checkIdCard = (rule, value, cb) => {
      const regIdCard = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
     
      if (regIdCard.test(value)) {
        return cb();
      }
      cb(new Error("您输入的身份证号码不是有效格式"));
    };
    return {
      ruleForm: {
        id_card: "", //身份证
      },
      rules: {
        id_card: [
          { required: true, message: "请输入身份证", trigger: "blur" },
          { validator: checkIdCard, trigger: "blur" },
        ],
      }
    },

element ui 官网也有详细介绍哦------https://element.eleme.cn/#/zh-CN/component/form

这样也就实现了自定义校验的规则,可以在项目中使用了!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • 基于Vue3实现前端埋点上报插件并打包发布到npm的详细过程

    基于Vue3实现前端埋点上报插件并打包发布到npm的详细过程

    这篇文章主要介绍了基于Vue3实现一个前端埋点上报插件并打包发布到npm,本项目采用pnpm进行Monorepo环境搭建,因为未来这个项目可能会加入更多的工具包,需要的朋友可以参考下
    2022-10-10
  • vue 调用浏览器摄像头实现及原理解析

    vue 调用浏览器摄像头实现及原理解析

    这篇文章主要为大家介绍了vue调用浏览器摄像头实现及原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue实现渐变色进度条的代码

    Vue实现渐变色进度条的代码

    这篇文章主要介绍了Vue实现渐变色进度条的代码,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue中element 的upload组件发送请求给后端操作

    vue中element 的upload组件发送请求给后端操作

    这篇文章主要介绍了vue中element 的upload组件发送请求给后端操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • vue3中使用vuex和vue-router的详细步骤

    vue3中使用vuex和vue-router的详细步骤

    这篇文章主要介绍了vue3中使用vuex和vue-router的步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • vue指令v-html和v-text

    vue指令v-html和v-text

    这篇文章主要介绍了 vue指令v-html和v-text,文章围绕vue指令v-html和v-text的相关资料展开详细内容,需要的小伙伴可以参考一下,希望对大家有所帮助
    2021-11-11
  • Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题

    Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题

    这篇文章主要介绍了Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • vue中返回结果是promise的处理方式

    vue中返回结果是promise的处理方式

    这篇文章主要介绍了vue中返回结果是promise的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue中的计算属性传参

    vue中的计算属性传参

    这篇文章主要介绍了vue中的计算属性传参,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue props 单项数据流实例分享

    vue props 单项数据流实例分享

    在本篇文章里小编给大家分享的是一篇关于vue props 单项数据流实例分享内容,需要的朋友们可以参考下。
    2020-02-02

最新评论