当前位置: 首页 > news >正文

使用element-plus中的表单验证

标签页代码如下:

// 注意:el-form中的数据绑定不可以用v-model,要使用:model
<el-form ref="ruleFormRef" :rules="rules" :model="userTemp" label-width="80px"><el-row :gutter="20"><el-col :span="12"><el-form-item label="账号" prop="username"><el-input v-model="userTemp.username"/></el-form-item></el-col><el-col :span="12"><el-form-item label="姓名" prop="name"><el-input v-model="userTemp.name"/></el-form-item></el-col></el-row>
</el-form>
<el-button type="primary" @click="confirmAdd(ruleFormRef)">确定</el-button>

语法糖代码如下:

<script setup lang="ts">
import {ElMessage, ElMessageBox, FormRules, FormInstance} from "element-plus"const userTemp = ref({username: '',name: '',
})
// 自定义检验规则
const usernameCheck = (rule, value, callback) => {if (value === undefined) {callback(new Error('账号不能为空'))} else {if (value === '') {callback(new Error('账号不能为空'))} else {if (value !== '') {let reg = /^[A-Za-z0-9]+$/if (!reg.test(value)) {callback(new Error('账号只能是字母或数字'))}}callback()}}
}
const rules = ref<FormRules<typeof userTemp>>({username: [{required: true, validator: usernameCheck, trigger: 'blur'}],name: [{required: true, message: '姓名不能为空', trigger: 'blur'}]
})
// 该名称要和标签中ref的名称一样
const ruleFormRef = ref(null)const confirmAdd = (formEl: FormInstance | undefined) => {if (!formEl) returnformEl.validate((valid) => {if (valid) {// 验证成功进入这里console.log('验证成功')} else {console.log('error submit!')return false}})
}
// 重置验证规则,调用resetForm(ruleFormRef.value)
const resetForm = (formEl: FormInstance | undefined) => {if (!formEl) returnformEl.resetFields()
}
</script>
http://www.lryc.cn/news/337788.html

相关文章:

  • flinksql
  • Dockerfile中 CMD和ENTRYPOINT的区别
  • 【TC3xx芯片】TC3xx芯片的总线内存保护
  • 抖音小店选品必经五个阶段,看你到哪一步了,直接决定店铺爆单率
  • ML在骨科手术术前、书中、术后方法应用综述【含数据集】
  • vue3-video-play 在安卓上正常播放,在ios上不能播放,问题解决
  • 【C++类和对象】上篇
  • 微信订阅号环境搭建及开发者工具下载
  • Failed to resolve ‘bss.myhuaweicloud.com‘ ([Errno -2] Name or service not know
  • 大厂基础面试题(之二)
  • swiftui macOS实现加载本地html文件
  • 科技云报道:大模型加持后,数字人“更像人”了吗?
  • 轻松驾驭时间流:MYSQL日期与时间函数的实用技巧
  • 如何在极狐GitLab 使用Docker 仓库功能
  • streamlit 大模型前段界面
  • K8s 命令行工具
  • 优先级队列
  • gitlab使用
  • ppt技巧:如何将Word文档大纲中导入到幻灯片中?
  • 0.开篇:SSM+Spring Boot导学
  • 7、configMap
  • 【Java面试题】JVM(26道)
  • (十三)强缓存和协商缓存的区别
  • 如何创建Windows下google Chrome便携版?
  • rabbitmq安装rabbitmq-delayed-message-exchange插件
  • B02、分析GC日志-6.3
  • Redis中的集群(二)
  • UVA12538 Version Controlled IDE 题解 crope
  • OAuth2.0客户端和服务端Java实现
  • 物流自动分拣系统激光雷达漫反射板