iview的表单同时进行数字的校验,以及非空校验会有问题:
采用如下的校验方式,在输入的时候没法校验通过
areavalue: [{ required: true, type:'number',message:'xxx' trigger: "blur" }]
采用这种方式,在编辑修改的时候,非空校验没法通过
areavalue: [
{ required: true, message:'xxx' trigger: "blur" },
{
required: true,
type: "number",
message: "xxxxxxx",
trigger: "blur"
}
]
正确的方式:自己在data的return外面自己定义正则校验,进行数字+非空的校验,然后引入校验规则
areavalue: [
//数字类型的数据,在编辑修改时非空校验无法通过,解决办法自己写正则校验数字+必填
//注意:数字+必填的 校验,自己写正则表达式进行校验
{ required: true, validator: validateNumber, trigger: "blur" }
],
//定义在return里面的数据返回的是整个对象,外界需要的数据都从return里面取,定义在return外面的,就是不返回到外界的数据
//在data里面调用的方法,定义在在data的return外面
const validateNumber = (rule, value, callback) => {
if (/^[0-9]+$/.test(value)) {
callback();
} else {
return callback(new Error("线程值不能为空且为整数"));
}
};
网友评论