ant4 多个form 验证_Antd 在一个formItem中多input的验证方法

本文介绍了如何在Ant Design(ant4)中实现多个表单元素的验证,包括时间选择器和城市选择器的验证。展示了CertificateField组件的实现,该组件在用户输入失去焦点时触发验证,并根据验证结果调用回调函数。
摘要由CSDN通过智能技术生成

import React from 'react';

import { Select, Input, Row, Col } from'antd';

import _ from'underscore';

import'./index.less';

const Option=Select.Option;

const uiPrefix= "certificate-field"class CertificateField extends React.Component {

constructor(props) {

super(props);this.state ={

yearlists: [],//时间下拉框列表

cities: [],//城市下拉框列表

years: undefined,

cityId: undefined,

warrantNumber: undefined,

};

}

static defaultProps={

cities: [],

yearlists: [],

hasYear:true,

hasCity:true,

readonly:true,

hasWarrantNum:true,

years: (newDate()).getFullYear(),

cityId:1,

}

getStateFromProps(props) {

let { value= {} } =props;return { ...this.parseDataFromInput(value) };

}

parseDataFromInput(value) {

let { years, cityId, warrantNumber }=value;

years= years ? ('' +years) : undefined;

cityId= cityId ? ('' +cityId) : undefined;

warrantNumber= warrantNumber ? ('' +warrantNumber) : undefinedreturn{ years, cityId, warrantNumber };

}

onBlur= () =>{

let { years, cityId, warrantNumber }= this.state;

let yearlistsName= this.getTextFromValue("yearlist");

let citieName= this.getTextFromValue("citie");

const { onBlur }= this.props;if(onBlur) {

const {

hasYear,

hasCity,

hasWarrantNum,

}= this.props;</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ant Design的Form组件中,您可以使用`getFieldDecorator`方法来创建输入框和选择框,并将它们的值拼接展示到最后一个输入框中。下面是一个示例代码: ```jsx import { Form, Input, Select } from 'antd'; const { Option } = Select; class MyForm extends React.Component { handleSubmit = e => { e.preventDefault(); this.props.form.validateFields((err, values) => { if (!err) { const { field1, field2, field3, field4 } = values; const concatenatedValue = `${field1}${field2}${field3}${field4}`; console.log(concatenatedValue); // 在这里可以根据需要进行后续操作 } }); }; render() { const { getFieldDecorator } = this.props.form; return ( <Form onSubmit={this.handleSubmit}> <Form.Item> {getFieldDecorator('field1')(<Input placeholder="输入框1" />)} </Form.Item> <Form.Item> {getFieldDecorator('field2')(<Input placeholder="输入框2" />)} </Form.Item> <Form.Item> {getFieldDecorator('field3')(<Select placeholder="选择框" />)} </Form.Item> <Form.Item> {getFieldDecorator('field4')(<Input placeholder="输入框3" />)} </Form.Item> <Form.Item> <Input value={concatenatedValue} disabled /> </Form.Item> </Form> ); } } const WrappedMyForm = Form.create()(MyForm); ``` 在上面的代码中,我们通过`getFieldDecorator`方法为每个输入框和选择框创建了一个装饰器。在`handleSubmit`方法中,我们通过`this.props.form.validateFields`获取了所有字段的值,并将它们拼接到`concatenatedValue`变量中。最后,在最后一个输入框中,我们通过设置`value={concatenatedValue}`将拼接后的值展示出来。 请注意,上述代码仅为示例,您可能需要根据自己的具体需求进行适当的修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值