【Vue3】注册功能【el-form】

实现注册校验

【需求】注册页面基本校验

  1. 用户名非空,长度校验5-10位
  2. 密码非空,长度校验6-15位
  3. 再次输入密码,非空,长度校验6-15位

【进阶】再次输入密码需要自定义校验规则,和密码框值一致(可选)

image-20240218164554309

  1. el-form => :model="ruleForm" :绑定的是绑定的整个form的数据对象 { xxx, xxx, xxx }。

    为了方便校验,我们需要将ruleForm绑定在el身上

    ruleForm绑定的是form对象,这个form对象是用来收集当前表单里全部的表单数据的

  2. el-form => :rules="rules" :绑定的整个rules规则对象 { xxx, xxx, xxx },form中可能有多个表单数据,里面的分别对应三个校验规则,所以rules是要基于ruleForm里的数据进行实现的。

  3. 表单元素 => v-model=“ruleForm.xxx” 给表单元素,绑定form的子属性

  4. el-form-item => prop 配置生效的是哪个校验规则 (和rules中的字段要对应)

image-20240218165130406

步骤:

  1. model 属性绑定 form 数据对象

数据将来是需要提交给后台的,不能自己编,应该看我们的接口文档

image-20240218172026266

// 整个用于提交的form数据对象
const formModel = ref({
  username: '',
  password: '',
  repassword: ''
})

<el-form :model="formModel" >
  1. v-model 绑定 form 数据对象的子属性
<el-input
  v-model="formModel.username"
  :prefix-icon="User"
  placeholder="请输入用户名"
></el-input>
... 
(其他两个也要绑定)
  1. rules 配置校验规则

rules并不需要是响应式的,所以直接提供一个普通对象即可

rules里的字段名需要与formModel里的字段名要统一。

规则是个数组,表示可以配置很多条规则。每个规则都是个对象。

trigger:什么时候触发,blur —> 失焦时校验,change —> 实时校验,不写的话,默认是change。

image-20240218172412206

<el-form :rules="rules" >
    
<script setup>
// 整个表单的校验规则
// 1. 非空校验 required: true      message消息提示,  trigger触发校验的时机 blur change
// 2. 长度校验 min:xx, max: xx
// 3. 正则校验 配置pattern字段: 正则规则    \S 非空字符
const rules = {
  username: [
    { required: true, message: '请输入用户名', trigger: 'blur' },
    { min: 5, max: 10, message: '用户名必须是5-10位的字符', trigger: 'blur' }
  ],
  password: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    {
      pattern: /^\S{6,15}$/,
      message: '密码必须是6-15位的非空字符',
      trigger: 'blur'
    }
  ],
  repassword: [
    { required: true, message: '请再次输入密码', trigger: 'blur' },
    {
      pattern: /^\S{6,15}$/,
      message: '密码必须是6-15的非空字符',
      trigger: 'blur'
    },
    {
      validator: (rule, value, callback) => {
        if (value !== formModel.value.password) {
          callback(new Error('两次输入密码不一致!'))
        } else {
          callback()
        }
      },
      trigger: 'blur'
    }
  ]
}
</script>
  1. prop 绑定校验规则

注意prop校验规则需要往el-form-item上面配

<el-form-item prop="username">
  <el-input
    v-model="formModel.username"
    :prefix-icon="User"
    placeholder="请输入用户名"
  ></el-input>
</el-form-item>
... 
(其他两个也要绑定prop)
Vue3中,`el-form-item-group`是Element UI库中的一个组件,用于组织和分组表单元素,通常用于展示复杂的表单结构,如嵌套的字段。`el-form-item`用于单独的表单项,而`el-form-item-group`则可以包含多个`el-form-item`。下面是一个基本的使用示例: 1. 引入依赖: 首先确保已经安装了Element UI,如果还没有,可以通过npm或yarn安装: ```bash npm install element-ui // 或者 yarn add element-ui ``` 2. 在Vue组件中导入并使用: ```html <template> <div> <el-form :model="form"> <!-- 使用el-form-item-group --> <el-form-item-group label="分组标题1" :rules="rules1"> <el-form-item prop="item1.1">...</el-form-item> <el-form-item prop="item1.2">...</el-form-item> </el-form-item-group> <el-form-item-group label="分组标题2"> <el-form-item prop="item2.1">...</el-form-item> <!-- 可以省略label,它会显示为第一个子元素的标签 --> <el-form-item>...</el-form-item> </el-form-item-group> </el-form> </div> </template> <script> import { ElFormItem, ElFormItemGroup } from 'element-ui'; export default { components: { ElFormItem, ElFormItemGroup }, data() { return { form: {}, // 表单数据模型 rules1: { ... }, // 分组1对应的验证规则 }; }, }; </script> ``` 3. 验证规则: `rules1`属性可以用来设置每个`el-form-item-group`内的验证规则,例如: ```javascript rules1: { item1: { required: true, message: '请输入内容', trigger: 'blur' // 触发验证事件 }, item2: [ { required: true, message: '不能为空', trigger: 'blur' }, { min: 5, message: '长度必须大于5', trigger: 'blur' } ] } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值