antd中的form表单必填,只有部分校验住了?

如题详述:

用react开发PC端项目,使用的是antd UI 库,可是在使用form表单,校验必填时候出现了问题——只有部分校验了。

如图:图片描述

解释:

1、红框字段时默认加载的,绿框字段是根据红框的第一个字段选择后加载的;
2、加载的这些字段,有些是必填项,什么都不填,直接点击保存,用的是form这种检验
this.refs.form.validateFields((err, value)=>{
    if (!err) {
        //提交表单的逻辑代码
    }
})
3、特别是绿框里的三个必填项,却只有两个校验住了,唯独那个“座位类别”没有校验住
4、对于这个字段,在react-devtools下也查看了属性,的确是有require=true 属性(因为没有这个属性,也不会出现文字前面的必填红星)

5、这个form表单是我们这边的大佬基于antd的form再封装的,并且这些字段都是动态加载进去的,直接传递属性进去动态显示的,我还真的不知道该怎么贴代码,让你们好懂,只能贴上react-devtools下的截图代码

图片描述

6、在下面大神的建议下,我好像考到了点端倪,贴上图:
图片描述
对于这样问题,的确也思考了很多,不得其解,请问各位有遇到过这种问题吗?亦或是有什么更好的意见解决这样的问题?

阅读 13.1k
5 个回答

你的座位类型的初始值是不是给的"",""也算是填了

既然这样不行,可以手动生成错误试试。思路是在你提交的时候,检查一遍哪个座位类型有没有数据,有数据,通过;没数据,报错。
具体用Antd/Form的 setFields API,用法

这样的问题,一般是名字写错了,查一下你的ID或者class

validateFields只对如下校验规则检验,检查一下是否通过其他方式(setFields)设置了error,昨天我也是通过setFields来设置error发现校验不起作用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题