首页 > 其他分享 >21-vue中rules 的验证方式

21-vue中rules 的验证方式

时间:2024-09-29 09:37:44浏览次数:8  
标签:vue 21 验证 rules prop trigger input type

vue中常用的几种表单rules验证方式:

 

message:报错信息

trigger:触发方式

1)blur :失去焦点时进行验证

2)change :当值发生变化时进行验证

 

required:指定字段是否为必填项(此栏是否为空)

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [
        {
            required: true,
            message: '请输入考核层级',
            trigger: 'blur',
        }
   ]
}

min/max:用于验证字段的最小值或最大值(适用于字符串长度或数字范围)

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [{
        min: 2,
        max: 5,
        message: '字符长度在2到5之间',
        trigger: 'blur'
    }]
}

type:指定字段的类型,如 string, number, boolean, array, date, email, url

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [{
        min: 1,
        max: 100,
        type: 'number',
        message: '请输入1到100之间的数字',
        trigger: 'change'
    }]
}

pattern:使用正则表达式进行验证

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [{
            pattern: /^[a-zA-Z0-9]+$/,
            message: '只能包含字母和数字',
            trigger: 'blur'
        }
    ]
}

validator:自定义验证逻辑,提供最大灵活性,可以使用回调函数来处理复杂的验证逻辑

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [{
            validator: (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('输入不能为空'));
                } else if (!/^\d+$/.test(value)) {
                    callback(new Error('请输入数字'));
                } else {
                    callback(); // 验证通过
                }
            },
            trigger: 'change'
        }

    ]
}

enum:指定枚举值,用于验证输入是否在特定值的集合中

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [{
        type: 'enum',
        enum: ['option1', 'option2'],
        message: '请选择有效选项',
        trigger: 'change'
    }]
}

len:验证字段的固定长度(适用于字符串或数组)

{
    label: "用户姓名",
    prop: "UserName",
    type: "input",

    rules: [{
        len: 5,
        message: '请输入5个字符',
        trigger: 'blur'
    }]
}

 

扩展:有一个需求,我需要在监视属性中,增加一个自定义rules规则,规则是判断两个日期是否符合条件,不符合需要返回 '日期校验错误'

watch: {
  
    'form.workloadCoefficient': function(value) {
        // this.form.workloadPrice = value * this.form.workload

        const column = this.findObject(this.option.column, 'workloadCoefficient')
        const date1 = new Date("2024-09-20")
        const date2 = new Date("2024-09-25")

        console.log("date1和date2", date1, date2)

        column.rules = [{
            validator: (rule, value, callback) => {
                if (date1 < date2) {
                    callback(new Error('日期校验错误'));
                } else {
                    callback(); // 验证通过
                }
            },
            trigger: 'change'
        }]

        // this.$nextTick() 在下次DOM更新循环结束之后执行延迟回调
        // 也就是说,在修改数据之后立即使用这个方法,获取更新后的DOM.
        this.$nextTick(() => {
            this.$refs.crud.validateField('workloadCoefficient');
        });
    }
},

 

标签:vue,21,验证,rules,prop,trigger,input,type
From: https://www.cnblogs.com/REN-Murphy/p/18438887

相关文章

  • 21_合并两个有序链表
    21_合并两个有序链表【问题描述】将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例一:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例二:输入:l1=[],l2=[]输出:[]示例三:输入:l1=[],l2=[0]输出:[0]......
  • 基于nodejs+vue心里咨询与诊断平台系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着社会节奏的加快与生活压力的增大,心理健康问题日益凸显,成为影响公众生活质量的重要因素。传统心理咨询服务受限于地域、时间以及资源分配不均等问题,难以......
  • 基于nodejs+vue鞋类秒杀商城[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和电子商务的日益普及,线上购物已成为现代人不可或缺的生活方式之一。在鞋类消费领域,消费者对于时尚、品质与性价比的追求日益增强,......
  • 基于nodejs+vue携手助学助学交流平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今社会,教育资源的不均衡分配问题日益凸显,尤其是在偏远地区及经济欠发达地区,优质教育资源的匮乏成为了制约学生成长与发展的关键因素。随着互联网技术的......
  • 基于nodejs+vue协同过滤音乐网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着数字音乐产业的蓬勃发展,音乐网站已成为人们日常生活中不可或缺的一部分。然而,面对海量的音乐资源,如何高效、精准地为用户推荐符合其个人喜好的音乐成为......
  • 20221409童诗嘉《密码系统设计》第四周
    20221409童诗嘉《密码系统设计》第四周AI对学习内容的总结要求让kimi阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材HeadFirstC嗨翻C语言第五章:Structs,Unions,andBitfields:Rollingyourownstructures1、编译过程与多源文件管理:编译流程:......
  • 基于SpringBoot+Vue的社区垃圾分类系统设计与实现
    ......
  • 【Vue】Vue2(1)
    文章目录1初识Vue2Vue模板语法3数据绑定4el与data的两种写法5MVVM模型1初识Vue<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>初识Vue</title> <!--引入Vue全局多了一个构造函数Vue--> <scripttype="text/jav......
  • springboot基于java的酒店管理系统设计与实现(源码+文档+调试+vue+前后端分离)
    收藏关注不迷路!!......
  • Vue和Vite是什么关系呢?-----与java后端的Spring和Maven对照理解一下
    前端框架(FrontendFramework)前端框架是一组预定义的库、工具和约定,用于简化和加速Web应用程序的开发。它提供了一种结构化的方式来构建用户界面,并处理常见的任务,如状态管理、路由、组件化等。类比:后端框架Django(Python)或RubyonRails(Ruby)这些后端框架提供了......