onBlur 请求接口,使用 validateOldRules 校验输入框内容
在 onBlur 事件中请求接口输入错误时,使 validateOldRules 校验输入框内容,可以通过在 onBlur 事件中调用 validateFields 方法来实现。在调用 validateFields 方法时,可以传入一个回调函数,在该回调函数中可以根据接口返回的结果来修改 validateOldRules 的校验规则。
具体代码如下所示:
<Form.Item
label={'原始密码'}
name={'oldPassword'}
rules={[
{ required: true },
{ validator: validateOldRules }
]}
labelCol={{style:{width:110}}}
labelAlign='right'
>
<Input.Password placeholder='请输入密码' onBlur={(e) => checkOldPass(e)}/>
</Form.Item>
const checkOldPass = (e) => {
const value = e.target.value;
// 发起请求,在请求成功后调用 validateFields 方法
requestAPI(value).then(response => {
// 根据接口返回的结果修改 validateOldRules 的校验规则
const newRules = [...validateOldRules];
if (response.error) {
newRules.push({ message: '密码校验失败' });
}
form.validateFields(['oldPassword'], (errors, values) => {
// 校验结果处理
});
});
};
以上代码中,checkOldPass 函数用于处理输入框的 onBlur 事件,其中的 requestAPI 函数用于模拟请求接口的过程。在请求成功后,根据接口返回的结果修改 validateOldRules 的校验规则,并调用 form 的 validateFields 方法来触发校验。在 validateFields 方法的回调函数中,可以处理校验结果并进行相应的操作。
原文地址: https://www.cveoy.top/t/topic/pa5I 著作权归作者所有。请勿转载和采集!