Element Plus 问题:选择框表单校验没有触发

html 复制代码
<el-form ref="myForm" :model="myFormParams" :rules="myFormRules">
  <el-form-item label="课程" prop="course">
    <el-select v-model.trim="myFormParams.course" filterable clearable placeholder="请选择课程">
      <el-option v-for="item in courseList" :key="item" :label="item" :value="item" />
    </el-select>
  </el-form-item>
</el-form>
js 复制代码
const courseList = ["Vue", "React", "JavaScript", "HTML", "CSS"];

const myForm = ref(null);
const myFormParams = reactive({
  course: "",
});
const myFormRules = reactive({
  course: [{ required: true, message: "请选择课程", trigger: "blur" }],
});
  1. 在前端 Vue3 开发中,使用 Element Plus 组件库时,上述代码中的表单校验没有触发

  2. 即,选择课程后,清空选择框,校验没有触发

  3. 只有主动调用表单的校验方法,才会触发校验,如下

html 复制代码
<el-button type="primary" @click="submitmyForm">提交</el-button>
js 复制代码
const submitmyForm = async () => {
  try {
    await myForm.value.validate();
  } catch (error) {
    console.error(error);
    return;
  }

  ElMessage.success("提交成功");
}
处理策略
  • 选择框可以使用 change 作为触发条件
js 复制代码
const myFormRules = reactive({
  course: [{ required: true, message: "请选择课程", trigger: "change" }],
});
相关推荐
无名-CODING2 小时前
从零开始!Vue3+SpringBoot前后端分离项目Docker部署实战(下):Vue前端Nginx反代与致命坑点盘点
前端·spring boot·docker
iPadiPhone2 小时前
性能之基:Java IO 体系深度解析、面试陷阱与实战指南
java·开发语言·后端·面试
于先生吖2 小时前
前后端分离开发 Java 跑腿系统:用户 + 骑手 + 后台三端实战
java·开发语言
野犬寒鸦2 小时前
从零起步学习JVM|| 第二章:JVM基本组成及JVM内存区域详解
服务器·开发语言·后端·学习·面试·职场和发展
2401_891482172 小时前
C++中的原型模式
开发语言·c++·算法
optimistic_chen2 小时前
【Vue3入门】vue-router 路由管理
前端·javascript·vue.js·路由·router
史蒂芬_丁2 小时前
C++静态变量管理实例
开发语言·c++
木子欢儿2 小时前
在 Debian 12 上安装多个版本的 php(7.3、7.4、8.1、8.2)
运维·开发语言·debian·php
2301_795741792 小时前
C++中的代理模式变体
开发语言·c++·算法