ElementPlus中form的表单验证不生效

需要按照官网的书写规范,并且表单绑定的数据对象要是最外层的,
el-form-item元素要有prop属性
之前绑定的是

state.ruleForm,这样是不生效的,

const state = reactive({
	isShowPassword: false,
	ruleForm: {
		userName: '',
		password: '',
	},
	loading: {
		signIn: false,
	},
});

需要改成这样

interface RuleForm {
	userName: string;
	password: string;
}

const ruleForm = reactive<RuleForm>({
	userName: '',
	password: '',
});

验证rules数组写法

import { FormRules } from 'element-plus';

const rules = reactive<FormRules<RuleForm>>({
	userName: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
	password: [
		{
			required: true,
			message: '密码不能为空',
			trigger: 'change',
		},
	],
});

使用,给form定义ref,其中有属性的绑定

:rules="rules" ref="ruleFormRef" :model="ruleForm"
import { FormInstance, FormRules } from 'element-plus';
const ruleFormRef = ref<FormInstance>();

登录按钮中将 ruleFormRef 当做参数传入

@click="onSignIn(ruleFormRef)"

onSignIn方法中进行验证

const onSignIn = (formEl: FormInstance | undefined) => {
	if (!formEl) return;
    //添加 async 以便返回 Promise
	formEl.validate(async (valid) => {
		if (valid) {
			//验证通过,发起后端请求
			
		} else {
			//验证不通过
		}
	});
};
posted @   猝死的路上  阅读(783)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示