• antd pro 项目Modal中嵌套Form表单,触发表单验证并获取表单提交的数据


    在这里插入图片描述
    antd pro项目中遇到弹框嵌套表单的需求,并获取其中的数据,
    在官方提供的Form表单API中有一个触发表单验证的方法validateFields 触发表单验证
    类型: (nameList?: NamePath[]) => Promise

    如下为项目中使用

    //此为Modal点击确定以后的回调
    const okHandle = async () => {
        const fieldsValue = await form.validateFields();
        // const fieldsValue = await this.form.current.validateFields(); 如果是在 class component 下,需要通过 ref 获取数据域。
        //fieldsValue即为表单内的值
        console.log("okHandle -> fieldsValue", fieldsValue)
      };
    

    如果是在 class component 下,需要通过 ref 获取数据域。

    form = React.createRef();
    //此为Modal点击确定以后的回调
    const okHandle = async () => {
        const fieldsValue = await this.form.current.validateFields(); 
        //fieldsValue即为表单内的值
        console.log("okHandle -> fieldsValue", fieldsValue)
      };
    
     <Modal
          destroyOnClose
          title="创建表单"
          visible={modalVisible}
          onOk={okHandle}
          onCancel={() => onCancel()}
        >
          <Form
            form={form}
            {...layout}>
            <FormItem
              label="表单标题"
              name="subject"
              rules={[{ required: true }]}
            >
              <Input placeholder="请输入" />
            </FormItem>
            <Form.Item label="模版">
              <Select options={pickList} />
            </Form.Item>
            <FormItem
              label="流转步骤"
              name="desc"
            >
              <Input placeholder="请输入" disabled />
            </FormItem>
            <FormItem
              label="评定量表"
              name="desc"
            >
              <Input placeholder="请输入" disabled />
            </FormItem>
            <Form.Item label="人员选择">
              <TreeSelect
                treeData={treeData}
              />
            </Form.Item>
            <Form.Item name="startDate"
              rules={[{ required: true }]}
              label="开始日期">
              <DatePicker />
            </Form.Item>
            <Form.Item
              name="isScheduleSent"
              valuePropName="checked"
              label="定时发送">
              <Checkbox>开始日期后发送</Checkbox>
            </Form.Item>
            <Form.Item name="endDate" rules={[{ required: true }]} label="结束日期">
              <DatePicker />
            </Form.Item>
            <Form.Item name="dueDate" rules={[{ required: true }]} label="到期日期">
              <DatePicker />
            </Form.Item>
    
          </Form>
        </Modal>
    
  • 相关阅读:
    面向对象的三个特征:封装(抽象)、继承、多态
    java中流程控制有4种循环,各自的适用场景
    break 和 continue
    基础知识点总结及示例
    Java程序的运行过程,以及Java为什么能够跨平台
    JDK,JRE,JVM的区别与联系?
    jsp(二)
    JSP
    过滤器
    Servlet监听器(二)
  • 原文地址:https://www.cnblogs.com/Mine-/p/14098599.html
Copyright © 2020-2023  润新知