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

相关推荐
一叶之秋14122 小时前
Linux基础IO
linux·运维·服务器
霍理迪2 小时前
CSS——背景样式以及雪碧图、渐变
前端·css
火星牛3 小时前
AI IDE试用(一)
javascript·ide
jump_jump5 小时前
基于 Squoosh WASM 的浏览器端图片转换库
前端·javascript·性能优化
小二·8 小时前
前端监控体系完全指南:从错误捕获到用户行为分析(Vue 3 + Sentry + Web Vitals)
前端·vue.js·sentry
Web极客码8 小时前
如何在Ubuntu服务器上安装和配置BIND9
服务器·数据库·ubuntu
吳所畏惧9 小时前
Linux环境/麒麟V10SP3下离线安装Redis、修改默认密码并设置Redis开机自启动
linux·运维·服务器·redis·中间件·架构·ssh
阿珊和她的猫9 小时前
IIFE:JavaScript 中的立即调用函数表达式
开发语言·javascript·状态模式
阿珊和她的猫9 小时前
`require` 与 `import` 的区别剖析
前端·webpack
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue在线音乐播放系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计