ant4 多个form 验证_React版Ant Design 4.5.4的Modal中表单验证

该博客详细介绍了如何在React应用中使用Ant Design 4.5.4的Modal组件进行多表单验证。通过创建一个名为ModalForm的组件,展示了如何设置表单字段、定义验证规则以及处理确认和取消操作。表单包含账号、姓名、个人空间配额、私密空间配额、证书级别、存储服务器选择以及是否允许中心共享的选项,每个字段都有相应的必填和格式验证。
摘要由CSDN通过智能技术生成

import React from 'react';

import { Modal, Form, Input, Button, InputNumber, Select, Checkbox, Radio } from 'antd';

const { Option } = Select;

const { TextArea } = Input;

const layout = {

labelCol: {

span: 5,

},

wrapperCol: {

span: 19,

}

};

export default class ModalForm extends React.Component {

state = {

visible: false,

value: 0

};

// Modal相关

showModal = () => {

this.setState({

visible: true,

});

}

handleOk = e => {

this.formRef.current.validateFields()

.then(values => {

this.formRef.current.resetFields();

this.setState({

visible: false

});

console.log("表单值:");

console.log(values);

})

.catch(info => {

console.log('Validate Failed:', info);

});

}

handCancel = e => {

this.formRef.current.resetFields();

this.setState({

visible: false

})

}

handleAfterClose = () => {

console.log("modal 关闭了!");

}

// 表单相关

formRef = React.createRef(); // 定义一个表单

render() {

return (<>

创建

title="创建"

visible={this.state.visible}

width={660}

onOk={this.handleOk}

onCancel={this.handCancel}

okText="确认"

cancelText="取消"

afterClose={this.handleAfterClose}

maskClosable={false}

destroyOnClose={true}

>

name="account"

style={{ display: 'inline-block', width: 'calc(80% - 8px)', marginRight: 15 }}

rules={[

{

required: true,

message: "账号不能为空"

},

{

pattern: /^[a-zA-Z0-9_()()\u4e00-\u9fa5]{1,32}$/,

message: "账号为1至32位汉字、字母、数字、下划线或中英文括号"

},

]}

>

style={{ display: 'inline-block', width: 'calc(20% - 8px)' }}

>

USBKEY

name="name"

style={{ display: 'inline-block', width: 'calc(80% - 8px)' }}

rules={[

{

required: true,

message: "姓名不能为空"

},

{

pattern: /^[a-zA-Z0-9_()()\u4e00-\u9fa5]{1,32}$/,

message: "姓名为1至32位汉字、字母、数字、下划线或中英文括号"

},

]}

>

name="space"

noStyle

rules={[{

required: true,

message: "个人空间配额不能为空"

}, {

type: 'number',

min: 1,

max: 100,

message: "个人空间配额为1-100之间整数"

}

]}

>

G

name="private"

noStyle

rules={[

{

required: true,

message: "私密空间配额不能为空"

}, {

type: 'number',

min: 1,

max: 100,

message: "私密空间配额为1-100之间整数"

}

]}

>

G

name="level"

style={{ display: 'inline-block', width: 'calc(80% - 8px)' }}

rules={[

{

required: true,

message: "证书级别不能为空"

},

]}

>

placeholder="请选择证书级别"

allowClear

>

一级

二级

name="server"

style={{ display: 'inline-block', width: 'calc(80% - 8px)' }}

rules={[

{

required: true,

message: "存储服务器不能为空"

},

]}

>

placeholder="请选择存储服务器"

allowClear

>

服务器一

服务器二

name="share"

label="是否允许中心共享"

rules={[

{

required: true,

message: "中心共享不能为空"

},

]}

>

name="describe"

style={{ display: 'inline-block', width: 'calc(80% - 8px)' }}

rules={[

{

pattern: /^[a-zA-Z0-9_()(),。,.\u4e00-\u9fa5]{0,128}$/,

message: '描述只能为汉字、字母、数字、下划线或中英文逗号、句号和括号'

}

]}

>

>)

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值