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 {
//验证不通过
}
});
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示