iview表单验证一直提示为空的几个原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iview表单验证一直提示为空的几个原因?相关的知识,希望对你有一定的参考价值。

参考技术A 1.Form上的rules是否配置正确;

2.Form-item的prop是否配置正确;

3.规则的名称和input的v-model是否对应;

4.验证的字段是否响应,新增字段使用this. $set.

2019-03-28 重置iview表单错误提示

参考技术A 此坑是在做项目的时候,多次遇到,具体的描述就是,在一个表单进行赋值,并且有可能会被修改,但是没有被修改的情况下,提交表单验证,部分type类型对不上的就会报错,但是表单值都是完整的,因为修改的时候进行了默认赋值,解决这个问题,直接将验证中的trigger删掉就行了,问题得到解决;

但是,当你这么做的时候,当重新打开新表单,没有赋值的时候,会进行一次表单验证,注意是在已赋值过后,再次打开这个新表单,此时是添加,不是修改,表单就一个,表单复用;这个时候上一次不知道什么原因造成的验证错误留在了页面上;

这里的解决方法就是,重置那几条出现错误的input,下面是原理,具体的我没仔细看,也是从别的博文上看到的,反正我就复制了下面的解决办法;

查看iView的resetFields方法的源码,这个方法是这样写的,就只有一句话:
resetFields:function()this.fields.forEach(function(e)e.resetField())

*从这个forEach我们可以联想出整个表单的域是通过循环一个个重置的,每个域通过resetField这个方法进行重置,真正执行重置的是forEach里面的resetField方法。
那么这个fields应该就是所有域的集合了,console.log()一下,果不其然。
可以先看一下整个结构

console.log(this.$refs [name])

也可以直接看域的array

console.log(this.$refs [name].fields)

在每个属性的域中都有prop属性,可以通过这个属性去重置表单

这个意思就是使用ressetField方法去重置一个域为abc的FormItem;

以上是关于iview表单验证一直提示为空的几个原因?的主要内容,如果未能解决你的问题,请参考以下文章

iview自定义表单验证 &&& 多表单同时验证

如何使 CodeIgniter 可调用为空的复选框,自定义表单验证错误

iview DatePicker type 为dateTime 时无法做表单验证!

(基于织梦)表单提交验证

[ React+ant Design] ProFrom高级表单 - 基本的几种格式验证

iview form表单验证