问题
使用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>
原因
未知[吐血]
注
这种解决方法只是一种简单的临时解决方案,暂时不知道有没有别的问题。。。╮(╯▽╰)╭