async-validator自定义校验
时间: 2024-09-14 17:03:07 浏览: 59
async-validator是基于Node.js和浏览器的表单验证库,它支持同步和异步验证规则。在async-validator中,你可以自定义校验规则来满足特定的验证需求,尤其是在进行异步校验时非常有用。
自定义校验通常需要提供一个校验函数,该函数接受当前字段的值和一个回调函数作为参数。校验函数的职责是根据提供的值进行校验,并在完成校验后通过回调函数返回校验结果。回调函数需要传递一个错误对象,如果校验未通过,则需要提供错误信息。
下面是一个简单的自定义校验规则的例子:
```javascript
import { createForm } from 'async-validator';
const descriptor = {
name: {
type: 'string',
required: true,
asyncValidator: (rule, value, callback) => {
setTimeout(() => { // 模拟异步操作
if (!value.includes('hello')) {
callback(new Error('必须包含关键字"hello"'));
} else {
callback();
}
}, 1000);
},
},
};
const validator = createForm(descriptor);
validator.validate({ name: 'hi' }, errors => {
console.log(errors); // 输出校验错误信息
});
```
在这个例子中,我们定义了一个名为`name`的字段,它必须是字符串类型,并且是必填的。我们还定义了一个`asyncValidator`规则,它是一个异步校验函数。在这个函数中,我们使用`setTimeout`模拟了一个异步操作,如果字段值`value`不包含关键字`"hello"`,则会调用回调函数`callback`并传递一个错误对象,否则传递`null`表示校验通过。
阅读全文