vue 表单验证 async-validator: ["xxx is not a string"]

问题

使用iview动态添加表单校验,触发 this.$refs[name].validate 方法校验的时候,会有一部分非String类型表单项提示校验未通过,console中显示 async-validator: ["xxx is not a string"]
组件写法如下:

       <Form ref="form" :model="form" >
            <FormItem :label="item.label" v-for="(item, index) in list" :key="index"
                      :prop="item.key"
                      :rules="[{ required: (item.required), message: '请填写' + item.label, trigger: 'change,blur'}]"
            >
                <Input v-model="form[item.key]"/>
            </FormItem>
        </Form>

console错误提示如下:


image.png

解决方法

去掉:rules 规则中的 trigger 属性

:rules="[{ required: (item.required), message: '请填写' + item.label,}]"

再次触发 this.$refs[name].validate 方法校验的时候恢复正常。

       <Form ref="form" :model="form" >
            <FormItem :label="item.label" v-for="(item, index) in list" :key="index"
                      :prop="item.key"
                      :rules="[{ required: (item.required), message: '请填写' + item.label,}]"
            >
                <Input v-model="form[item.key]"/>
            </FormItem>
        </Form>

原因

未知[吐血]

这种解决方法只是一种简单的临时解决方案,暂时不知道有没有别的问题。。。╮(╯▽╰)╭

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容