表单自定义规则的校验

打印 上一主题 下一主题

主题 1031|帖子 1031|积分 3093

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在 Vue 3 中使用 Element Plus 的表单组件举行自定义规则的校验非常方便。Element Plus 提供了 ElForm 和 ElFormItem 组件,它们内置了表单验证的功能。下面我将具体介绍如何使用 Element Plus 举行自定义规则的校验。
创建表单及规则

首先,你需要创建一个 ElForm 组件,并为其提供一个 model rules 对象。然后在每个 ElFormItem 中绑定 prop 属性,该属性应该对应于 model 中的字段。
示例代码

  1. <template>
  2.   <el-form :model="form" :rules="rules" ref="formRef" label-width="80px">
  3.     <el-form-item label="用户名" prop="username">
  4.       <el-input v-model="form.username"></el-input>
  5.     </el-form-item>
  6.     <el-form-item label="密码" prop="password">
  7.       <el-input v-model="form.password" type="password"></el-input>
  8.     </el-form-item>
  9.     <el-form-item>
  10.       <el-button type="primary" @click="submitForm">提交</el-button>
  11.     </el-form-item>
  12.   </el-form>
  13. </template>
  14. <script setup>
  15. import { ref } from 'vue';
  16. const formRef = ref(null);
  17. const form = ref({
  18.   username: '',
  19.   password: ''
  20. });
  21. const rules = ref({
  22.   username: [
  23.     { required: true, message: '请输入用户名', trigger: 'blur' },
  24.     { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
  25.   ],
  26.   password: [
  27.     { required: true, message: '请输入密码', trigger: 'blur' },
  28.     { min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' },
  29.     { validator: validatePassword, trigger: 'blur' }
  30.   ]
  31. });
  32. function validatePassword(rule, value, callback) {
  33.   if (value === '') {
  34.     callback(new Error('请输入密码'));
  35.   } else {
  36.     if (form.value.username === value) {
  37.       callback(new Error('密码不能与用户名相同'));
  38.     } else {
  39.       callback();
  40.     }
  41.   }
  42. }
  43. function submitForm() {
  44.   formRef.value.validate((valid) => {
  45.     if (valid) {
  46.       alert('提交成功!');
  47.     } else {
  48.       console.log('验证失败');
  49.       return false;
  50.     }
  51.   });
  52. }
  53. </script>
复制代码
说明


  • 定义表单模子form 是一个响应式对象,用于存储表单数据。
  • 定义验证规则rules 对象定义了表单验证规则。

    • required: 是否必填。
    • min 和 max: 字符串长度的最小和最大值。
    • trigger: 触发验证的事件,例如 blur 表示失去焦点时触发验证,change是change:改变触发。
    • validator: 自定义验证函数。

  • 自定义验证函数validatePassword 函数用于验证暗码是否与用户名雷同。
  • 提交表单submitForm 函数调用 formRef.value.validate 方法来触发表单验证。如果全部验证都通过,则提交表单。
注意事项



  • 确保在 ElForm 上使用 ref 属性,以便可以通过引用访问表单实例。
  • 自定义验证函数的第一个参数 rule 是当前验证规则的信息,第二个参数 value 是表单字段的值,第三个参数 callback 是回调函数,用于陈诉验证结果。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表