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.
ant-design-vue/components/form/demo/validate-static.vue

163 lines
4.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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>