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)
