Vue.js前端框架教程12:Vue表单验证rules和form.validate

文章目录

表单验证

在 Vue 中,:rulesformRef.value.validate 通常用于表单验证。:rules 是一个对象,定义了表单字段的验证规则,而 formRef.value.validate 是一个方法,用于触发表单验证,并根据验证结果执行相应的操作。

:rules

:rules 是在表单组件中使用的一个属性,它接收一个对象,该对象包含了表单中每个字段的验证规则。每个字段的规则是一个数组,数组中的每个元素都是一个规则对象,可以包含以下属性:

  • required: 表示该字段是否必填。
  • message: 验证失败时显示的错误信息。
  • trigger: 指定何时触发验证(如 blurchange)。
  • type: 指定数据类型(如 stringnumber 等)。
  • minmax: 对于字符串或数组,限制最小和最大长度。
  • validator: 自定义验证函数。

例如,以下是使用 :rules 的一个简单示例:

html 复制代码
<template>
  <el-form :model="form" :rules="rules">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="form.username"></el-input>
    </el-form-item>
    <el-form-item label="密码" prop="password">
      <el-input type="password" v-model="form.password"></el-input>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        username: '',
        password: ''
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' }
        ]
      }
    };
  }
};
</script>
formRef.value.validate

formRef.value.validate 是一个方法,用于验证整个表单。它返回一个 Promise,如果表单验证通过,则 Promise 会解析为 true;如果验证失败,则 Promise 会解析为 false 或者抛出错误。

以下是使用 formRef.value.validate 的一个示例:

html 复制代码
<template>
  <el-form ref="formRef" :model="form" :rules="rules">
    <!-- 表单项 -->
  </el-form>
  <el-button @click="submitForm">提交</el-button>
</template>

<script>
export default {
  methods: {
    submitForm() {
      this.$refs.formRef.validate((valid) => {
        if (valid) {
          alert('表单验证通过');
          // 执行提交操作
        } else {
          alert('表单验证失败');
          return false;
        }
      });
    }
  }
};
</script>

在这个示例中,当用户点击提交按钮时,会触发 submitForm 方法。该方法调用 formRef.value.validate 来验证表单。如果验证通过,则显示提示消息并执行提交操作;如果验证失败,则显示错误提示。

这些是 Vue 表单验证的基本介绍和用法,你可以根据具体需求调整验证规则和处理验证结果的逻辑。

相关推荐
朝阳581几秒前
M3U8 下载助手油猴脚本 - 完全使用指南
前端·javascript·windows
早點睡390几秒前
ReactNative项目OpenHarmony三方库集成实战:react-native-sensors(设备传感器)
javascript·react native·react.js
kadog1 分钟前
GraphX:基于 WebGL 区间算术的 GPU 加速隐函数绘图器
前端·javascript·数学建模·webgl
utmhikari2 分钟前
【DIY小记】解决MacOS上Edge浏览器bilibili全屏卡顿的问题
前端·macos·性能优化·edge·bilibili
上单带刀不带妹3 分钟前
UniApp 页面跳转完全指南:5 种路由方式详解与实战对比
前端·javascript·vue.js·uni-app·跨端开发
A.A呐3 分钟前
【Linux第二十五章】高级IO
linux·运维·服务器
zzzsde4 分钟前
【Linux】库的制作与使用(2)ELF&&静态链接
linux·运维·服务器
大阿明5 分钟前
Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
前端·npm·node.js
Cxiaomu5 分钟前
Web 项目的开发/生产环境请求接口配置治理实战
前端·react.js·typescript
Можно6 分钟前
深入理解 UniApp 生命周期钩子:从页面到组件的全流程掌控
前端·javascript·vue.js