ant-design/components/form/demo/validate-static.md

175 lines
4.8 KiB
Markdown
Raw Normal View History

2016-03-31 09:40:55 +08:00
---
order: 20
title:
zh-CN: 自定义校验
en-US: Customized Validation
2016-03-31 09:40:55 +08:00
---
2015-06-15 20:24:01 +08:00
2016-07-31 09:53:51 +08:00
## zh-CN
我们提供了 `validateStatus` `help` `hasFeedback` 等属性,你可以不通过 Form 自己定义校验的时机和内容。
2015-06-15 20:24:01 +08:00
1. `validateStatus`: 校验状态,可选 'success', 'warning', 'error', 'validating'。
2. `hasFeedback`:用于给输入框添加反馈图标。
3. `help`:设置校验文案。
2015-07-07 11:25:16 +08:00
2016-07-31 09:53:51 +08:00
## en-US
We provide properties like `validateStatus` `help` `hasFeedback` to customize your own validate status and message, without using Form.
2016-07-31 09:53:51 +08:00
1. `validateStatus`: validate status of form components which could be 'success', 'warning', 'error', 'validating'.
2. `hasFeedback`: display feed icon of input control
3. `help`: display validate message.
2016-07-31 09:53:51 +08:00
```tsx
import { SmileOutlined } from '@ant-design/icons';
import {
2022-05-23 14:37:16 +08:00
Cascader,
DatePicker,
Form,
Input,
InputNumber,
Mentions,
2022-05-23 14:37:16 +08:00
Select,
TimePicker,
TreeSelect,
} from 'antd';
2022-05-23 14:37:16 +08:00
import React from 'react';
2018-06-27 15:55:04 +08:00
2018-12-22 16:48:30 +08:00
const { Option } = Select;
2015-06-15 20:24:01 +08:00
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 6 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 },
},
};
const App: React.FC = () => (
<Form {...formItemLayout}>
2018-12-22 16:48:30 +08:00
<Form.Item
2016-07-31 09:53:51 +08:00
label="Fail"
2015-10-29 08:41:51 +08:00
validateStatus="error"
2016-09-22 10:09:22 +08:00
help="Should be combination of numbers & alphabets"
>
2016-11-01 16:11:06 +08:00
<Input placeholder="unavailable choice" id="error" />
2018-12-22 16:48:30 +08:00
</Form.Item>
2015-07-07 11:25:16 +08:00
2019-05-07 14:57:32 +08:00
<Form.Item label="Warning" validateStatus="warning">
<Input placeholder="Warning" id="warning" prefix={<SmileOutlined />} />
2018-12-22 16:48:30 +08:00
</Form.Item>
2015-10-25 11:35:03 +08:00
2018-12-22 16:48:30 +08:00
<Form.Item
2016-07-31 09:53:51 +08:00
label="Validating"
2015-11-25 17:47:55 +08:00
hasFeedback
2015-10-29 08:41:51 +08:00
validateStatus="validating"
2016-07-31 09:53:51 +08:00
help="The information is being validated..."
>
2016-11-01 16:11:06 +08:00
<Input placeholder="I'm the content is being validated" id="validating" />
2018-12-22 16:48:30 +08:00
</Form.Item>
2015-07-07 11:25:16 +08:00
2019-05-07 14:57:32 +08:00
<Form.Item label="Success" hasFeedback validateStatus="success">
2016-11-01 16:11:06 +08:00
<Input placeholder="I'm the content" id="success" />
2018-12-22 16:48:30 +08:00
</Form.Item>
2015-10-25 11:35:03 +08:00
2019-05-07 14:57:32 +08:00
<Form.Item label="Warning" hasFeedback validateStatus="warning">
2018-12-17 10:02:08 +08:00
<Input placeholder="Warning" id="warning2" />
2018-12-22 16:48:30 +08:00
</Form.Item>
2015-07-07 11:25:16 +08:00
2018-12-22 16:48:30 +08:00
<Form.Item
2016-07-31 09:53:51 +08:00
label="Fail"
2015-11-25 17:47:55 +08:00
hasFeedback
2015-10-29 08:41:51 +08:00
validateStatus="error"
2016-09-22 10:09:22 +08:00
help="Should be combination of numbers & alphabets"
>
2018-12-17 10:02:08 +08:00
<Input placeholder="unavailable choice" id="error2" />
2018-12-22 16:48:30 +08:00
</Form.Item>
2015-10-09 15:44:10 +08:00
2019-05-07 14:57:32 +08:00
<Form.Item label="Success" hasFeedback validateStatus="success">
<DatePicker style={{ width: '100%' }} />
2018-12-22 16:48:30 +08:00
</Form.Item>
2019-05-07 14:57:32 +08:00
<Form.Item label="Warning" hasFeedback validateStatus="warning">
<TimePicker style={{ width: '100%' }} />
2018-12-22 16:48:30 +08:00
</Form.Item>
<Form.Item label="Error" hasFeedback validateStatus="error">
<DatePicker.RangePicker style={{ width: '100%' }} />
</Form.Item>
2019-05-07 14:57:32 +08:00
<Form.Item label="Error" hasFeedback validateStatus="error">
<Select placeholder="I'm Select" allowClear>
<Option value="1">Option 1</Option>
<Option value="2">Option 2</Option>
<Option value="3">Option 3</Option>
</Select>
2018-12-22 16:48:30 +08:00
</Form.Item>
2018-12-22 16:48:30 +08:00
<Form.Item
label="Validating"
hasFeedback
validateStatus="error"
help="Something breaks the rule."
>
<Cascader placeholder="I'm Cascader" options={[{ value: 'xx', label: 'xx' }]} allowClear />
</Form.Item>
<Form.Item label="Warning" hasFeedback validateStatus="warning" help="Need to be checked">
<TreeSelect
placeholder="I'm TreeSelect"
treeData={[{ value: 'xx', label: 'xx' }]}
allowClear
/>
2018-12-22 16:48:30 +08:00
</Form.Item>
2019-05-07 14:57:32 +08:00
<Form.Item label="inline" style={{ marginBottom: 0 }}>
2018-12-22 16:48:30 +08:00
<Form.Item
validateStatus="error"
help="Please select right date"
style={{ display: 'inline-block', width: 'calc(50% - 12px)' }}
>
<DatePicker />
2018-12-22 16:48:30 +08:00
</Form.Item>
<span
style={{ display: 'inline-block', width: '24px', lineHeight: '32px', textAlign: 'center' }}
>
-
</span>
2019-05-07 14:57:32 +08:00
<Form.Item style={{ display: 'inline-block', width: 'calc(50% - 12px)' }}>
<DatePicker />
2018-12-22 16:48:30 +08:00
</Form.Item>
</Form.Item>
2019-05-07 14:57:32 +08:00
<Form.Item label="Success" hasFeedback validateStatus="success">
<InputNumber style={{ width: '100%' }} />
2018-12-22 16:48:30 +08:00
</Form.Item>
<Form.Item label="Success" hasFeedback validateStatus="success">
<Input allowClear placeholder="with allowClear" />
</Form.Item>
<Form.Item label="Warning" hasFeedback validateStatus="warning">
<Input.Password placeholder="with input password" />
</Form.Item>
<Form.Item label="Error" hasFeedback validateStatus="error">
<Input.Password allowClear placeholder="with input password and allowClear" />
</Form.Item>
<Form.Item label="Fail" validateStatus="error" hasFeedback>
<Mentions />
</Form.Item>
<Form.Item label="Fail" validateStatus="error" hasFeedback help="Should have something">
<Input.TextArea allowClear showCount />
</Form.Item>
</Form>
2018-11-28 15:00:03 +08:00
);
export default App;
2019-05-07 14:57:32 +08:00
```