iview表单验证的步骤

  • 第一步:给 Form 设置属性 rules
:rules="规则设置"
  • 第二步:同时给需要验证的每个 FormItem 设置属性 prop 指向对应字段即可 prop=”“
  • 第三步:注意:Form标签里面是 :model
  • 第四步:注意:在Form标签里面必须添加 ref,相当于id,在此范围内的表单验证有效
  • 第五步:在操作保存按钮时,添加方法,对整个表单进行校验,参数为检验完的回调,会返回一个 Boolean 表示成功与失败。

位置

一般位置是在 Data()里面

data() return  { editInfoValidate:{
contractNo:[
{ required: true, message: '合同编号不能为空', trigger: 'blur' },
]
} }

也可以放在 和new Vue 一个层级,这样变成全局验证

还可以放在FormItem 里(不推荐)

<FormItem
prop="UserId"
:rules=" [
{ required: true, message: '请选择一项', trigger: 'change',type:'number',min:1},
]"
>
<Select v-model="formAddOrder.UserId" filterable @on-change="selectUser">
<Option v-for="(item,index) in userList" :value="item.UserId" :label="item.name" :key="index" >
<span>{{item.name}}</span>
</Option>
</Select>
</FormItem>

例子

//methods里面,写的方式
editInfoValidate: { CityId: [ { required: true, message: ' ? ', type: 'number' },
{ type: 'string',pattern:/^(([1-9]\d{0,3})|0)(\.\d{0,2})?$/, message:'数量应为正浮点数且不超过9999.99', trigger:'blur'},], Title: [ { required: true, message: ''},
{type: 'string', max: 5, message: '',trigger: 'blur'} , ]
},
////methods里面,写的方式
addChange(name){
this.$refs[name].validate(valid => {
if (valid) {
}
});

1.2 FormItem 添加验证 prop="name"

支持的类型


type:'string'
string: 必须是字符串类型。这是默认类型
number: 必须是数字
boolean: 必须是布尔型的
method:必须是类型函数
regexp: 必须是ReGEXP的实例,或者是在创建新的ReGEXP时不会生成异常的字符串
integer:必须是整数.
float:必须是浮点数.
array: 必须是由Array.isArray确定的数组
object: 必须是类型对象而不是Array.isArray
enum: 枚举中必须存在值。
date: 按日期确定的值必须有效
url: 必须是URL类型。
hex: 必须是十六进制。
email:必须是电子邮件类型。 pattern: schema.pattern.email { type: 'number', message: '', trigger: 'blur', transform(value) {
return Number(value);
}

内置的验证规则


required: true pattern :正则表达式 min: 6 //最小值6 max:10// 最大值10 Length : 长度 enum: 验证字段是否存在其中

enum: 验证字段是否存在其中

{ message:'不包含a , u, g',trigger: 'change',type: 'enum',enum: ['a', 'u', 'g']}
whitespace : true | false
true:空白字符 ->错误提醒
false: 空白字符->不报错

设置提示

message:'提示信息'

设置事件

trigger : 'change' | 'blur'
trigger: 'blur'

iview进行多重验证的写法:

ruleValidate: {
goodsNum: [
{ required: true, message: '数量不能为空', trigger: 'blur' },
{ type: 'string',pattern:/^(([1-9]\d{0,3})|0)(\.\d{0,2})?$/, message:'数量应为正浮点数且不超过9999.99', trigger:'blur'},
],
}

2.2 自定义验证

方式1

// 定义

data() {
const validatePass = (rule, value, callback) => {
var passex = /^(?=.*\d)(?=.*[a-zA-Z])(?!.*\s).{8,22}$/;
if (value === "" || !passex.test(value)) {
callback(new Error("密码不能为空且为8-22位的字母和数字组合"));
} else {
if (this.changePassForm.TwoPassWord !== "") {
// 对第二个密码框单独验证
this.$refs.changePass.validateField("TwoPassWord");
}
callback();
}
}; return {}

使用

validaterules: {
OldPassWord: [
{
type: "string",
required: true,
message: "请输入原始密码",
trigger: "blur"
}
],
NewPassword: [
{
required: true,
validator: validatePass,//注意这里
trigger: "blur"
}
] }
 {validator(rule, value, callback, source, options) {
var errors = [];
if (!/^[a-z0-9]+$/.test(value)) { callback(' ? ?...');
}
callback(errors); }}

全局的验证,例子

new Vue({
el: '#addModule',
data(){
var validateuser = function(rule, value, callback){
if(!value){
return callback(new Error(" ? "));
}else if(!/^[a-zA-Z\d]+$/.test(value)){
return callback(new Error(" ? ? "))
}else{
callback();
}
}; return{
ruleValidate:{
username : [{validator: validateuser,trigger: 'blur'}],
nick : [{validator: validatenick,trigger: 'blur'}],
password : [{validator: validatePass, trigger: 'blur' },{min:6,message:' ? ?}],
rpassword : [{validator: validatePassCheck, trigger: 'blur' },{min:6,message:' ? ?}],
group:[{required: true, type: 'string', message: ' ? ', trigger: 'change'}]
}

iview表单验证的更多相关文章

  1. iview表单验证下拉框不通过问题

    iview表单验证的步骤: 第一步:给 Form 设置属性 rules :rules 第二步:同时给需要验证的每个 FormItem 设置属性 prop 指向对应字段即可 prop=”“ 第三步:注意 ...

  2. iview表单验证不生效问题注意点

    按照iview官网介绍写的form表单验证,但是无论填写与否都不进行校验,找了很久的原因,突然才发现一个关键的地方,一定要加props!!! https://blog.csdn.net/xuaner8 ...

  3. iview表单验证之正则验证、函数验证

    iview表单验证之正则 正则验证: 代码: loginRules: { stringLength: [ { required: true, message: '该字段不能为空', trigger: ...

  4. 有关使用 iview 表单验证的问题

    Vue的UI解决框架,element-UI, iview-UI 有关表单验证使用的是同一个插件,async-validator,有关这个插件的用法就不做赘述,但是在iview表单的使用中可能会用到验证 ...

  5. iview 表单验证不通过问题?

    项目需要,需要怂iview..使用一段时间感觉跟elementUI用起来差不多很方便.使用过程中遇到表单验证问题,如何避免在验证过程中偶尔出现验证不通过的异常情况? <1>:给 <F ...

  6. vue中使用iview表单验证时this指针问题

    需求 使用iview,在提交时对值b进行验证,使其不能大于值a 实现 <Form ref="config" :model="config" :rules= ...

  7. iview 表单验证

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. iview表单验证trigger:'change,blur'

    今天发现,如果设置select的trigger:'blur'就算选择之后还是边框是红色的,之后查了一下iview的文档,也没有找到准确的蚊子描述,只看到form那个组件其中有一个例子,大概是selec ...

  9. iview表单验证数字

    验证输入字符串必须为数字 html: <FormItem label="兑换积分:" prop="exchangeIntegral"> <In ...

  10. iview表单验证--数字必填+校验

    直接使用: { required: true, type:"integer", message:"请填写整数", trigger: "blur&quo ...

随机推荐

  1. vulnhub靶场之HACK ME PLEASE

    准备: 攻击机:虚拟机kali.本机win10. 靶机:HACK ME PLEASE,下载地址:https://download.vulnhub.com/hackmeplease/Hack_Me_Pl ...

  2. 【Shell案例】【awk、grep、sort、uniq】10、第二列是否有重复

    给定一个 nowcoder.txt文件,其中有3列信息,如下实例,编写一个shell脚本来检查文件第二列是否有重复,且有几个重复,并提取出重复的行的第二列信息:实例:20201001 python 9 ...

  3. 【重难点总结】DMA与kafka零拷贝机制之间的关系

    一.DMA介绍 1.概念 DMA(Direct Memory Access,直接存储器访问) 是一种内存访问技术,独立于CPU, 直接读.写系统存储器.外设等 主存与I/0设备之间使用DMA控制器控制 ...

  4. 【CDH数仓】Day02:业务数仓搭建、Kerberos安全认证+Sentry权限管理、集群性能测试及资源管理、邮件报警、数据备份、节点添加删除、CDH的卸载

    五.业务数仓搭建 1.业务数据生成 建库建表gmall 需求:生成日期2019年2月10日数据.订单1000个.用户200个.商品sku300个.删除原始数据. CALL init_data('201 ...

  5. 【Spark】Day03-Spark SQL:DataFrame、DataSet、sql编程与转换、项目实战(区域热门商品)

    一.概述 1.介绍 将Spark SQL转换成RDD,然后提交到集群执行[对比hive] 提供2个编程抽象:DataFrame&DataSet 可以使用SQL和DatasetAPI与Spark ...

  6. npm设置

    1.默认安装完node.js后会自己安装npm,通过npm下载全局模块默认安装到C:\Users\wangyc\AppData\Roaming目录下,主要有两个文件夹:npm.npm-cache 2. ...

  7. 服务器迁移遇到的bug

    目前有个客户做了个下单系统,系统运行了太多的扩展了,但是又没有文档,我就想着能不能把服务器打包成镜像,然后用新服务直接使用?? 事实是完全OK的.服务器用的阿里云. 但是遇到一个bug,我目前还没解决 ...

  8. 多表查询两种方法、可视化软件navicat、python操作mysql、pymysql模块

    目录 多表查询的思路 多表查询的两种方法 小知识点补充数说明 可视化软件Navicat 安装教程 数据库常用操作 多表查询练习题 python 操作MySQL pymysql补充说明 Non-grou ...

  9. 【开源】基于.net6+gtksharp实现的Linux下的图形界面串口调试工具

    背景 22年初从上家互联网公司离职以后,充分认识到互联网行业的风险,公司在没有自身稳定产品的情况下,互联网行业就是一个烧钱的行业,支出远远大于收入来源,上家公司就是如此,12年的公司转瞬间轰然倒地,1 ...

  10. 如何通过Java应用程序将Word转为Excel

    平时在工作中,很多小伙伴会习惯性地将文件保存为Word文档格式,但有时会发现某些文件如果保存成Excel表格可能会更好地呈现.例如有的文本在Word文本中不如在Excel工作表编辑计算方便,所以要把W ...