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

相关推荐
苏打水com1 小时前
第九篇:Day25-27 Vue进阶——组件复用与状态管理(对标职场“复杂项目”需求)
前端·javascript·vue.js
老华带你飞1 小时前
博物馆展览门户|基于Java博物馆展览门户系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
无奈笑天下1 小时前
银河麒麟高级服务器操作系统【双网卡绑定之bond0】操作方法
linux·运维·服务器·网络·经验分享
PineappleCoder1 小时前
别让页面 “鬼畜跳”!Google 钦点的 3 个性能指标,治好了我 80% 的用户投诉
前端·性能优化
卤代烃1 小时前
🕹️ [AI] Chrome DevTools MCP 原理分析
前端·mcp
梦里不知身是客112 小时前
flink对于迟到数据的处理
前端·javascript·flink
卤代烃2 小时前
🤝 了解 CDP (Chrome DevTools Protocol):browser-use 背后的隐藏功臣
前端·chrome·puppeteer
一 乐2 小时前
人事管理系统|基于Springboot+vue的企业人力资源管理系统设计与实现(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·后端
b***74882 小时前
前端状态系统的时代变革:从本地状态到全局状态,再到智能状态的未来趋势
前端·状态模式
盛世宏博智慧档案2 小时前
数据追溯 + 异常预警:机柜温湿度以太网变送器应用实践方案
linux·服务器·网络