🌈 An enterprise-class UI components based on Ant Design and Vue. 🐜
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

162 lines
4.9 KiB

<docs>
---
order: 20
title:
zh-CN: 自定义校验
en-US: Customized Validation
---
## zh-CN
我们提供了 `validateStatus` `help` `hasFeedback` 等属性你可以不通过 Form 自己定义校验的时机和内容
1. `validateStatus`: 校验状态可选 'success', 'warning', 'error', 'validating'
2. `hasFeedback`用于给输入框添加反馈图标
3. `help`设置校验文案
## en-US
We provide properties like `validateStatus` `help` `hasFeedback` to customize your own validate status and message, without using Form.
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.
</docs>
<template>
<a-form v-bind="formItemLayout">
<a-form-item
label="Fail"
validate-status="error"
help="Should be combination of numbers & alphabets"
>
<a-input id="error" placeholder="unavailable choice" />
</a-form-item>
<a-form-item label="Warning" validate-status="warning">
<a-input id="warning" placeholder="Warning">
<template #prefix><smile-outlined /></template>
</a-input>
</a-form-item>
<a-form-item
label="Validating"
has-feedback
validate-status="validating"
help="The information is being validated..."
>
<a-input id="validating" placeholder="I'm the content is being validated" />
</a-form-item>
<a-form-item label="Success" has-feedback validate-status="success">
<a-input id="success" placeholder="I'm the content" />
</a-form-item>
<a-form-item label="Warning" has-feedback validate-status="warning">
<a-input id="warning2" placeholder="Warning" />
</a-form-item>
<a-form-item
label="Fail"
has-feedback
validate-status="error"
help="Should be combination of numbers & alphabets"
>
<a-input id="error2" placeholder="unavailable choice" />
</a-form-item>
<a-form-item label="Success" has-feedback validate-status="success">
<a-date-picker style="width: 100%" />
</a-form-item>
<a-form-item label="Warning" has-feedback validate-status="warning">
<a-time-picker style="width: 100%" />
</a-form-item>
<a-form-item label="Error" has-feedback validate-status="error">
<a-range-picker style="width: 100%" />
</a-form-item>
<a-form-item label="Error" has-feedback validate-status="error">
<a-select placeholder="I'm Select" allow-clear>
<a-select-option value="1">Option 1</a-select-option>
<a-select-option value="2">Option 2</a-select-option>
<a-select-option value="3">Option 3</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label="Validating"
has-feedback
validate-status="error"
help="Something breaks the rule."
>
<a-cascader
placeholder="I'm Cascader"
:options="[{ value: 'xx', label: 'xx' }]"
allow-clear
/>
</a-form-item>
<a-form-item label="Warning" has-feedback validate-status="warning" help="Need to be checked">
<a-tree-select
placeholder="I'm TreeSelect"
:tree-data="[{ value: 'xx', label: 'xx' }]"
allow-clear
/>
</a-form-item>
<a-form-item label="inline" style="margin-bottom: 0px">
<a-form-item
validate-status="error"
help="Please select right date"
style="display: inline-block; width: calc(50% - 12px)"
>
<a-date-picker />
</a-form-item>
<span style="display: inline-block, width: 24px; line-height:32px; text-align: center">
-
</span>
<a-form-item style="display: inline-block; width: calc(50% - 12px)">
<a-date-picker />
</a-form-item>
</a-form-item>
<a-form-item label="Success" has-feedback validate-status="success">
<a-inputNumber style="width: 100%" />
</a-form-item>
<a-form-item label="Success" has-feedback validate-status="success">
<a-input allow-clear placeholder="with allowClear" />
</a-form-item>
<a-form-item label="Warning" has-feedback validate-status="warning">
<a-input-password placeholder="with input password" />
</a-form-item>
<a-form-item label="Error" has-feedback validate-status="error">
<a-input-password allow-clear placeholder="with input password and allowClear" />
</a-form-item>
<a-form-item label="Fail" validate-status="error" has-feedback>
<a-mentions />
</a-form-item>
<a-form-item label="Fail" validate-status="error" has-feedback help="Should have something">
<a-textarea allow-clear show-count />
</a-form-item>
</a-form>
</template>
<script lang="ts" setup>
import { SmileOutlined } from '@ant-design/icons-vue';
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 6 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 },
},
};
</script>