zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    【PyQt5-Qt Designer】对话框系列
    【PyQt5-Qt Designer】界面布局
    【PyQt5-Qt Designer】PyQt5+eric6 安装和配置
    【PyQt5-Qt Designer】QMessageBox 弹出框总结
    【PyQt5-Qt Designer】鼠标+键盘事件
    【PyQt5-Qt Designer】猜数字(小项目)
    【PyQt5-Qt Designer】浅谈关闭窗口
    【PyQt5-Qt Designer】窗口操作
    【python基础】利用pandas处理Excel数据
    【python基础】os.path模块常用方法详解
  • 原文地址:https://www.cnblogs.com/Mine-/p/14098599.html
Copyright © 2011-2022 走看看