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 表单验证的基本介绍和用法,你可以根据具体需求调整验证规则和处理验证结果的逻辑。

相关推荐
别抢我的锅包肉11 分钟前
【FastAPI】 + SQLAlchemy 异步 ORM 实现完整 CRUD 操作
前端·fastapi
. . . . .15 分钟前
抽象语法树 AST
javascript
zero159734 分钟前
TypeScript 快速实战系列:基础入门|TypeScript 核心语法 1 小时吃透(必备基础)
javascript·typescript·大模型编程语言
清风絮柳35 分钟前
65.少儿英语微信小程序
vue.js·spring boot·微信小程序·小程序·毕业设计
tq6J5Yg141 小时前
windows10本地部署openclaw
前端·python
gwjcloud1 小时前
Frp内网穿透
linux·运维·服务器
bIo7lyA8v1 小时前
如何用SSH访问远程服务器上的内网服务(如:MySQL、Redis、Kafka)?
服务器·mysql·ssh
ISkp3V8b41 小时前
从 ReAct 到 Workflow:基于云端 API 构建事件驱动的智能体
前端·react.js·前端框架
小邓睡不饱耶1 小时前
花店花品信息管理系统开发实战:Python实现简易门店管理系统
服务器·python·microsoft
星空2 小时前
前端--A_1--THML标签
前端