1.失去焦點時驗證
<Col span={12}>
<Form.Item
label="賬號"
labelCol={{ span: 5 }}
wrapperCol={{ span: 16 }}
>
{isAdd ? (
getFieldDecorator('bank_account', {
rules: [
{
required: Number(invoice_type) === 2 ? true : false,
validator: (rule, value, callback) => {
if (rule.required && !value) {
callback('請填寫開戶賬號!')
} else if (
(rule.required || value) &&
/[\u4e00-\u9fa5]|\s/g.test(
value
)
) {
callback('不允許出現中文字符,不能出現空格')
}
callback()
},
},
],
validateTrigger: 'onBlur'
})(<Input placeholder="不允許出現中文字符,不能出現空格" />)
) : (
<span>
{invoiceDetail && invoiceDetail.bank_account
? invoiceDetail.bank_account
: '-'}
</span>
)}
</Form.Item>
</Col>
2.有時我們需要重置驗證狀態,使用場景如下:
當開發票的時候,發票有兩種類型,普票和專票,當選擇普票的時候,其他信息可填可不填,當選專票時,電話等信息必填。此時我們選擇專票,沒有填寫電話信息,點提交,會報請輸入電話號碼,這是我們改選普票,但沒有重新驗證,此時頁面還是展示着請填寫電話,我們可以在選擇普票時,獲取填寫的電話號碼,再把電話內容重置,此時效驗狀態也重置了,再把電話內容賦值給輸入框即可。
const content = this.props.form.getFieldsValue(['register_tel') this.props.form.resetFields(['register_tel')
this.props.form.setFieldsValue(content)
