163 lines
4.9 KiB
Vue
163 lines
4.9 KiB
Vue
|
<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>
|