react、ant(版本4),使用modal嵌套form表单,使用modal底部的确定按钮提交form表单
在React中使用Ant Design(版本4)的Modal组件嵌套Form表单,并使用Modal底部的按钮来提交表单,可以通过以下步骤实现:
- 使用
Form
组件创建表单,并在Modal中展示。 - 使用
Modal
组件创建对话框,并添加确认按钮。 - 在确认按钮的点击事件中,调用表单的
validateFields
方法来验证表单数据的准确性。 - 如果表单数据有效,则执行提交操作。
以下是实现这一功能的示例代码:
import React from 'react';
import { Modal, Form, Input, Button } from 'antd';
class App extends React.Component {
state = {
formModalVisible: false,
};
showFormModal = () => {
this.setState({ formModalVisible: true });
};
handleFormModalCancel = () => {
this.setState({ formModalVisible: false });
};
handleFormSubmit = values => {
// 执行表单提交的操作
console.log('Form values received:', values);
// 关闭Modal
this.setState({ formModalVisible: false });
};
handleFormFinish = values => {
// 表单验证通过后的回调
this.handleFormSubmit(values);
};
handleFormFinishFailed = () => {
// 表单验证失败的回调
console.log('Form validation failed');
};
render() {
const { formModalVisible } = this.state;
return (
<>
<Button type="primary" onClick={this.showFormModal}>
打开表单
</Button>
<Modal
title="表单"
visible={formModalVisible}
onCancel={this.handleFormModalCancel}
footer={[
<Button key="cancel" onClick={this.handleFormModalCancel}>
取消
</Button>,
<Button key="submit" type="primary" onClick={this.handleSubmit}>
提交
</Button>,
]}
>
<Form onFinish={this.handleFormFinish} onFinishFailed={this.handleFormFinishFailed}>
<Form.Item name="name" label="姓名" rules={[{ required: true, message: '请输入姓名!' }]}>
<Input />
</Form.Item>
</Form>
</Modal>
</>
);
}
}
export default App;
在这个例子中,当用户点击打开表单按钮时,会触发showFormModal
方法,将formModalVisible
状态设置为true
以显示Modal。在Modal底部,有一个确认按钮,当用户点击时,会触发handleSubmit
方法。在handleSubmit
方法中,我们调用表单的validateFields
方法来验证输入的数据。如果验证通过,则通过控制台输出表单数据,并关闭Modal。如果验证失败,则输出相应的错误信息。
评论已关闭