记录-iView-的表单验证

36次阅读

共计 1425 个字符,预计需要花费 4 分钟才能阅读完成。

  • iview 表单验证必要设置
 1. 给 Form 标签用 :model 绑定数据 
 2. 给 Form 标签里面必须添加 ref , 用于最后提交获取 Form 表单的实例
 3. 给 Form 设置属性 rules :rules
 4. 给需要验证的每个 FormItem 设置属性 prop , 用于表单验证和绑定属性一致 
  • iview 验证多个表单问题
<template>
    <Form ref="addForm" :model="addForm" :rules="addFormValidate" >
        <FormItem label="名称" prop="name">
            <Input v-model="addForm.name" />
        </FormItem>
    </Form>
    <Form ref="editForm" :model="editForm" :rules="editFormValidate" >
        <FormItem label="名称" prop="name">
            <Input v-model="editForm.name" />
        </FormItem>
    </Form>
</template>
<script>
  export default {
    methods:{this.$refs.addForm.validate((valid) => {
            // 第一层验证第一个表单
            if (valid) {this.$refs.editForm.validate((valid) => {
                       // 第二层验证第二个表单
                       if(valid){alert('验证成功')
                       }
                  })
             }
        })
     }
  }
</script>
  • iview 自定义表单验证
<template>
    <Form ref="addForm" :model="addForm" :rules="ruleValidate" >
        <FormItem label="名称" prop="name">
            <Input v-model="addForm.name" />
        </FormItem>
    </Form>
</template>
<script>
  export default {data() {var validateName = function(rule, value, callback){if(!value){return callback(new Error("请输入名称"));
             }else if(!/^[\u4e00-\u9fa5]+$/.test(value)){return callback(new Error("请正确输入名称"))
             }else{callback();
             }
        };
        return {
            addForm:{name:""}
            ruleValidate:{name : [{validator : validateName , trigger : 'blur'}]
            }
        }
     }
  }
</script>

自定义的验证规则写在 data 里面,在 returnruleValidate 指定字段 validator 里面调用;
trigger:触发机制(blur | change)
pattern:正则表达式
enum:验证字段是否存在其中
equired:是否为空(true | false)
whitespace:空白字符(true | false)

  • iview 表单验证的类型
 1. string(字符串 / 默认类型)2. number(数字)3. boolean(布尔类型)4. method(函数)5. float(浮点数)6. integer(整数)7. array(数组)8. object(对象)9. date(日期)10. url(URL 类型)11. email(电子邮件类型)

正文完
 0