首页 > 其他分享 >Vue在表单校验中trigger属性指定何时触发校验规则

Vue在表单校验中trigger属性指定何时触发校验规则

时间:2024-06-13 14:32:53浏览次数:20  
标签:触发 Vue 校验 表单 trigger email change

Vue在表单校验中trigger属性指定何时触发校验规则


一、前言

在表单校验中,trigger 属性用于指定何时触发校验规则。常见的触发方式包括 "change""blur". 它们的区别如下:

  1. trigger: "change":

    • 触发时机: 当表单控件的值发生变化时触发校验。
    • 应用场景: 适用于需要在用户每次输入时实时校验的情况,比如动态提示用户输入是否符合要求。
    • 例子:
      rules: {
        username: [
          { required: true, message: '用户名不能为空', trigger: 'change' }
        ]
      }
      
    • 优点: 提供即时反馈,用户体验更好。
    • 缺点: 如果表单控件很多,可能会导致性能下降。
  2. trigger: "blur":

    • 触发时机: 当表单控件失去焦点时触发校验。
    • 应用场景: 适用于在用户完成输入后进行校验的情况,比如在用户输入完一个字段并移到下一个字段时进行校验。
    • 例子:
      rules: {
        email: [
          { type: 'email', message: '请输入有效的邮箱地址', trigger: 'blur' }
        ]
      }
      
    • 优点: 减少不必要的校验,提升性能。
    • 缺点: 用户只有在离开输入框后才能看到校验结果,反馈不如 change 即时。

1.示例代码

以下是一个包含两种触发方式的示例:

<template>
  <el-form :model="formData" :rules="rules" ref="form">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="formData.username"></el-input>
    </el-form-item>
    <el-form-item label="邮箱" prop="email">
      <el-input v-model="formData.email"></el-input>
    </el-form-item>
    <el-button type="primary" @click="submitForm">提交</el-button>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      formData: {
        username: '',
        email: ''
      },
      rules: {
        username: [
          { required: true, message: '用户名不能为空', trigger: 'change' }
        ],
        email: [
          { type: 'email', message: '请输入有效的邮箱地址', trigger: 'blur' }
        ]
      }
    };
  },
  methods: {
    submitForm() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          console.log('表单提交成功');
        } else {
          console.log('表单校验失败');
          return false;
        }
      });
    }
  }
};
</script>

在这个示例中,username 字段使用 trigger: 'change' 进行校验,即每次输入变化时都会触发校验;email 字段使用 trigger: 'blur' 进行校验,即在输入框失去焦点时才触发校验。

标签:触发,Vue,校验,表单,trigger,email,change
From: https://blog.csdn.net/weixin_46146718/article/details/139653241

相关文章

  • DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门
    场景DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139631755以上使用流水线配置和打包springboot后台项目,如果要使用流水线和配置node打包vue项目,可按如下步骤。注:博......
  • vue代办事件案例实战练习,配有答案解析
    代办事件案例该案例,综合了前面所学的知识,列入点击事件绑定,双向绑定,v-for循环语句,v-model双向绑定,以及input标签的不同type形式。演示代码如下:<template><divid="kuagjia"><div><divclass="top"><spanstyle="margin-left:-700px;">学习计划表......
  • vue项目中axios封装(数据请求封装)
    一、定义utils(工具类)目录,并创建两个文件,request.js与http.jsrequest.js用于创建axios,并在请求/响应拦截时对需要传递的数据进行处理。//引入axiosimportaxiosfrom'axios'//使用前要先安装依赖:npminstallaxios//引入element-ui信息import{Message}from"elemen......
  • java+vue3+el-tree实现树形结构操作
    基于springboot+vue3elementPlus实现树形结构数据的添加、删除和页面展示效果如下代码如下,业务部分可以自行修改java后台代码importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.daztk.mes.common.annotation.LogOperation;import......
  • 基于Java+Vue的智慧园区管理系统:推动新技术与办公场景的深度融合(源码分享)
     前言:智慧园区管理平台是一个集成了多种功能的综合性系统,旨在通过信息化、智能化手段提升园区的管理效率和服务质量。以下是针对系统的各个功能模块的简要描述:一、楼栋管理会务管理:管理园区内的会议预约、会议室使用等。园区信息:展示园区的基本信息,如位置、面积、规划等。......
  • 基于Java+Vue的企事业移动培训考试平台:提升员工能力,助力文化传递(源码分享)
    前言:企事业移动培训考试平台是一个集成多种功能的综合性平台,旨在为企业提供便捷、高效、灵活的在线培训和考试解决方案。以下是针对平台所列出的八个主要功能的详细解释:一、文档管理及在线预览允许企业上传、存储、管理和分享各种培训文档,如PPT、PDF、Word等。提供在线预览......
  • JsSIP+FreeSwitch+Vue实现WebRtc音视频通话
    效果让同事帮我测的,在两个电脑分别打开该页面,一个注册1007分机号,另一个注册1005,然后拨打视频电话依赖版本jssip:3.6.1freeswitch:1.10.5-release~64bitvue:2.6.12488错误解决在freeswitch配置文件sip_profiles/internal.xml中添加:<paramname="apply-can......
  • vue3 修改element-plus主题颜色(css版)
    vue3修改主题颜色_若依vue3改默认主题色-CSDN博客上面的是js修改-----------------------------------------------------------------------------------------------------------------------1.新建一个APPStyle.css文件代码/*8这里是要替换的样式,可以参开下面注释......
  • 国思RDIF.vNext全新低代码快速开发框架平台6.1版本发布(支持vue2、vue3)
    1、平台介绍RDIF.vNext,全新低代码快速开发集成框架平台,给用户和开发者最佳的.Net框架平台方案,为企业快速构建跨平台、企业级的应用提供强大支持。RDIF.vNext的前身是RDIFramework框架,RDIF(RapiddevelopIntegrateFramework,vNext代表全新下一代),全新设计,全新开发,代码量减......
  • vue3探索——在setup script中使用tsx语法
    vue3+ts+eslint配置tsxvite.config.ts安装@vitejs/plugin-vue-jsx#npmnpmi@vitejs/plugin-vue-jsx-D#yarnyarnadd@vitejs/plugin-vue-jsx-D#pnpmpnpmadd@vitejs/plugin-vue-jsx-D在vite.config.ts中使用……importvueJsxfrom'@vitejs/plugin-vue......