form表單校驗(yàn)時,發(fā)現(xiàn)提示信息一直不顯示
原因:是因?yàn)閒orm表單中有用到了自定義校驗(yàn)割粮,但是callback沒有正確調(diào)用
antd文檔中有提到:
1 使用了自定義校驗(yàn)時趁猴,在自定義校驗(yàn)callback必須被調(diào)用
2 callback(‘xxx’) 表示校驗(yàn)未通過学密、callback() 表示校驗(yàn)通過
3 可以選擇返回一個 promise 獲取第三個參數(shù)callback()
部分代碼:
getFieldDecorator('itemName', {
initialValue: itemName,
rules: [{
required: true,
message: "請輸入xxxxxx",
validator: (rule, value) => {
const reg = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/
if(value){
if(!reg.test(value)){
return Promise.reject('請輸入xxxx');
}
return Promise.resolve();
}
}
}],
})(<Input placeholder="請輸入xxxxx" style={{width: 350}} />)
或者
{
validator: (rule, value, callback) => {
if (value === undefined || value === null) {
callback()
}
else {
var mobile = value;
var tel = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;
var phone = /(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/;
if (mobile.length === 11) {
if (!phone.test(mobile)) {
callback('請輸入')
}
else {
callback()
}
}
else {
if (!tel.test(mobile)) {
callback('請輸入')
}else {
callback()
}
}
callback()
}
}
}
],