zoukankan      html  css  js  c++  java
  • Element-ui 自定义表单验证规则

    有时在后台我们需要对输入的数值进行简单的正则验证,此时ElementUi 自带的验证已不能满足我们的需求,故需要我们自己去写 验证规则

    有两种书写位置:

    • 一种在data中写规则
    • 另一种在methods中写规则

    表单:

    <el-form-item label="需求砍价人数:" prop="haggleNumber">
           <el-input v-model="formData.haggleNumber" clearable>        
           </el-input>
    </el-form-item>    

    方法一: 在data中写规则

    data() {
        // 自定义校验规则
        var bargainMoney = (rule, value, callback) => {
          // rule 对应使用bargainMoney自定义验证的 对象
          // value 对应使用bargainMoney自定义验证的 数值 
          // callback 回调函数
          const r = /^+?[1-9][0-9]*$/; // 正整数
          if (value == null || String(value).trim() === "") {
            callback(new Error("不能为空"));
          } else if (!r.test(value)) {
            callback(new Error("请输入正整数"));
          }else {
            callback();
          }
        };
      
       return {
          formData: {
            haggleNumber: "", // 砍价人数
          },
          rules: {
            haggleNumber: [
              {
                required: true,
                validator: bargainMoney,
                trigger: "blur"
              }
            ],
          }
       }
    }

    方法二: 在methods中写规则

    data() {
     return {
          formData: {
            haggleNumber: "", // 砍价人数
          },
          rules: {
            haggleNumber: [
              {
                required: true,
                validator: this.bargainMoney,
                trigger: "blur"
              }
            ],
          }
     }
    },
    methods: {
        // 自定义校验规则
        bargainMoney(rule, value, callback){
          // rule 对应使用bargainMoney自定义验证的 对象
          // value 对应使用bargainMoney自定义验证的 数值 
          // callback 回调函数
          const r = /^+?[1-9][0-9]*$/; // 正整数
          if (value == null || String(value).trim() === "") {
            return callback(new Error("不能为空"));
          } else if (!r.test(value)) {
            return callback(new Error("请输入正整数"));
          }else {
            return callback();
          }
        },
    }

    二者的区别在于:

    • 在data 中不需要通过 return 回调函数,而在 methods 中则需要
    • 在methods中写的验证规则 ,需要在rules中配置规则时通过 this获取

    分享一刻:

      国内数一数二的代码托管平台,一起来为国内开源生态贡献一份力量吧 

      Gitee

  • 相关阅读:
    kafka 流式计算
    解决山地车令人讨厌的中轴异响及其他异响问题
    go语言通道详解
    使用Spring Cloud连接不同服务
    并发之痛 Thread,Goroutine,Actor
    用go语言实现线程池
    golang go语言通道类型的通道示例 通道的通道
    Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
    spring5 reactive
    Go 语言和 Scala 语言对比
  • 原文地址:https://www.cnblogs.com/huangaiya/p/12874675.html
Copyright © 2011-2022 走看看