优秀的编程知识分享平台

网站首页 > 技术文章 正文

vue+element 表单验证时报错async-validator: ['xx is not a string']

nanyue 2024-07-18 03:59:38 技术文章 6 ℃

做表单验证时,提示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" }],
          }
        }
    },

Tags:

最近发表
标签列表