form Submit提交校验问题不生效

来源:2-22 为 clipboard.js 开源库添加简化版的定义文件

不染的卡卡

2023-12-04

git 地址:https://gitee.com/ren_meng_xue/zheye


麻烦老师帮忙看下表单提交的时候 校验规则不生效 打印的app.vue里面的

onFormSubmit 方法返回的result一直是true

写回答

1回答

张轩

2023-12-05

同学你好

这里的逻辑你的理解有些偏差,ValidateInput 中 应该是要发射事件到 ValidateForm 的 mitt实例中,而不是新建一个实例,所以要这样修改一下:

// 一开始不需要新建实例了,直接使用 ValidateForm 中的
import { emitter } from './ValidateForm.vue'
// 下面这些都注释掉
// import mitt from 'mitt'
// type ValidateFunc = () => boolean
// type Events = { 'form-item-created': ValidateFunc }// 定义一个Event类型  这个对应是让事件和对应的callback 一一对应
// export const emitter = mitt<Events>()// 实例化 mitt 的时候,作为泛型传递进去

// 63 行的 validateInput 要返回一个 boolean 值,所以要加上返回
const validateInput = () => { 
    if (props.rules) {
      ... 之前的逻辑
      inputRef.error = !allPassed
      return allPassed
    }
    return true
}

// 最后要发射事件,而不是监听事件
onMounted(() => {
    emitter.emit('form-item-created', validateInput)
})
// emitter.on('form-item-created', validateInput)

// 亲测有效
0
1
不染的卡卡
非常感谢您的帮助
2023-12-05
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程