做表单验证时,提示async-validator: ['ratio is not a string'],由于这里是做了整型和浮点型数值验证不能把验证类型设为type:"number"或者type:"integer"等。只能做了正则验证,如果是添加的时候就不会出现xxx is not a string的提示,如果是修改的时候做了正则验证这一项没有修改就会出现出现xxx is not a string的提示。即时把el-input v-model转为el-input v-model.number也没用。经过一番修改后,才没有报错。
下面是出现错误提示的代码:
ratio: [
{
required: true,
message: "比率只能是整数或两位小数",
trigger: "blur",
pattern: "^[0-9]+$|[0-9]+[.][0-9]{1,2}#34;,
},
],
修改后没有报错:
data() {
var checkRatio = (rule, value, callback) => {
if (!value) {
return callback(new Error("比率不能为空"));
}
var reg = /^[0-9]+$|[0-9]+[.][0-9]{1,2}$/;
var check = reg.exec(value);
if (!check) {
callback(new Error("比率只能是整数或两位小数"));
} else {
callback();
}
}
return {
form: {
id: "",
name: "",
description: "",
ratio: "",
status: 1,
},
rules: {
ratio: [{ validator: checkRatio, trigger: "blur" }],
}
}
},