首页 > 其他分享 >antdv (Ant Design of Vue) 复杂表单验证问题解决方法

antdv (Ant Design of Vue) 复杂表单验证问题解决方法

时间:2022-11-08 15:24:39浏览次数:47  
标签:Vue antdv 验证 元素 value 表单 Ant input 监听

我们知道,在简单的表单中,都是一项一项往下排列的,验证的时候也按照字段一一对把规则写好就能验证,如下图

 

 

但是遇到了复杂场景的表单验证,比如一项由多个input、checkbox等等组合而成,在用到 form-model 组件的时候,该如何验证?如下图:

 一个项里面有两个数字input、一个日期input,并且还可以新增。

以及下图场景:数字输入框、下拉选框、文字输入框等等。

 

 

总结来说就是一项需要验证多个子元素

 

这时我们可以用官方建议的方法解决此类问题:

Form.Item 会对唯一子元素进行劫持,并监听 blur 和 change 事件,来达到自动校验的目的,所以请确保表单域没有其它元素包裹。如果有多个子元素,将只会监听第一个子元素的变化。

如果要监听的表单域不满足自动监听的条件,可以通过如下方式关联表单域:

<a-form-model-item prop="form.name" ref="name" :autoLink="false">
  <a-input v-model="other" />
  <span>hahha</span>
  <div>
    <a-input
      v-model="form.name"
      @blur="() => {$refs.name.onFieldBlur()}"
      @change="() => {$refs.name.onFieldChange()}"
    />
  </div>
</a-form-model-item>

 

这时可以在 rules 里面写一个自定义 validator 来验证 value 值:

   validator: (rule, value, cb) => {
                        console.log('validator', { rule, value });
                        // 此处写判断value的代码
                        if (wrong) { // 伪代码
                            cb('请设置正确的排序再进行保存');
                        } else {
                            cb();
                        }
                    }        

 

缺点是当验证不通过时,所有子元素都会变红框,暂未找到可以单独控制子元素变红的方法。

标签:Vue,antdv,验证,元素,value,表单,Ant,input,监听
From: https://www.cnblogs.com/cloudbarrychen/p/16869810.html

相关文章

  • VUE2 实现一个页面 调用 另一个页面的函数
    今天我在Vue 需要实现 一个这样的功能在App.vue页面中 要实现 调用 另一个页(ExtensionMonitor.vue)中的函数 并将参数 传过去下面将实现的步骤写下来,供大家参考1.......
  • JeecgBoot 3.4.3-Vue2 版本发布,Vue2版前端UI专项升级
    JeecgBootvue2版前端UI代码更新到3.4.3最新版,兼容最新版的后台(3.4.3、3.4.3-GA)。发版日期:2022-11-08源码下载前端:https://github.com/jeecgboot/ant-design-vue-jee......
  • 写过vue自定义指令吗,原理是什么?.m
    背景看了一些自定义指令的文章,但是探究其原理的文章却不多见,所以我决定水一篇。如何自定义指令?其实关于这个问题官方文档上已经有了很好的示例的,我们先来温故一下。除......
  • vue项目echarts图表自适应
     1、首先新建一个js文件,用来自定义一个全局指令:  2、然后在main.js中引入:  3、然后在自己使用的echarts上加入此指令! ......
  • vue源码分析-v-model的本质
    双向数据绑定这个概念或者大家并不陌生,视图影响数据,数据同样影响视图,两者间有双向依赖的关系。在响应式系统构建的上,中,下篇我已经对数据影响视图的原理详细阐述清楚了。而......
  • vue源码中的渲染过程是怎样的
    4.1VirtualDOM4.1.1浏览器的渲染流程当浏览器接收到一个Html文件时,JS引擎和浏览器的渲染引擎便开始工作了。从渲染引擎的角度,它首先会将html文件解析成一个DOM树,与此......
  • vue源码分析-diff算法核心原理
    这一节,依然是深入剖析Vue源码系列,上几节内容介绍了VirtualDOM是Vue在渲染机制上做的优化,而渲染的核心在于数据变化时,如何高效的更新节点,这就是diff算法。由于源码中关于d......
  • 6个在Vue.js编写更好v-for循环的技巧
    https://learnvue.co/2020/02翻译|杜尼卜在vuejs中,v-for循环是每个项目都会使用的东西,它允许您在模板代码中编写for循环。在最基本的用法中,它们的用法如下。<ul><liv-f......
  • vue实现图片、pdf、xlsx、doc、docx、mp4、txt在线预览功能
    后端返回的是文件流形式,并且在浏览器输入链接是直接下载到本地的。文件流遇到问题可参考这个https://blog.csdn.net/Robergean/article/details/125981195https://www.h......
  • vue内置组件component的使用
    <keep-alive><componenttype="type":is="componentName":isEdit="isEdit":ref="componentName"@allFormSave="allFormSave":infoData="i......