iview表单验证
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表单验证的更多相关文章
- iview表单验证下拉框不通过问题
iview表单验证的步骤: 第一步:给 Form 设置属性 rules :rules 第二步:同时给需要验证的每个 FormItem 设置属性 prop 指向对应字段即可 prop=”“ 第三步:注意 ...
- iview表单验证不生效问题注意点
按照iview官网介绍写的form表单验证,但是无论填写与否都不进行校验,找了很久的原因,突然才发现一个关键的地方,一定要加props!!! https://blog.csdn.net/xuaner8 ...
- iview表单验证之正则验证、函数验证
iview表单验证之正则 正则验证: 代码: loginRules: { stringLength: [ { required: true, message: '该字段不能为空', trigger: ...
- 有关使用 iview 表单验证的问题
Vue的UI解决框架,element-UI, iview-UI 有关表单验证使用的是同一个插件,async-validator,有关这个插件的用法就不做赘述,但是在iview表单的使用中可能会用到验证 ...
- iview 表单验证不通过问题?
项目需要,需要怂iview..使用一段时间感觉跟elementUI用起来差不多很方便.使用过程中遇到表单验证问题,如何避免在验证过程中偶尔出现验证不通过的异常情况? <1>:给 <F ...
- vue中使用iview表单验证时this指针问题
需求 使用iview,在提交时对值b进行验证,使其不能大于值a 实现 <Form ref="config" :model="config" :rules= ...
- iview 表单验证
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- iview表单验证trigger:'change,blur'
今天发现,如果设置select的trigger:'blur'就算选择之后还是边框是红色的,之后查了一下iview的文档,也没有找到准确的蚊子描述,只看到form那个组件其中有一个例子,大概是selec ...
- iview表单验证数字
验证输入字符串必须为数字 html: <FormItem label="兑换积分:" prop="exchangeIntegral"> <In ...
- iview表单验证--数字必填+校验
直接使用: { required: true, type:"integer", message:"请填写整数", trigger: "blur&quo ...
随机推荐
- ArcObjects SDK开发 013 MapFrame
1.如何获取MapFrame 打开一个Mxd文件,可能包含一个或多个Map,每个Map都会放到一个MapFrame中,加载到PageLayout上.我们可以通过PageLayout继承的IGraphi ...
- ADB命令快速入门
什么是ADB adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以方便调试Android程序. 环境搭建 1需要java环境: 安装完JDK需要配置环境变量 ...
- 《MySQL必知必会》之快速入门存储过程
使用存储过程 本章介绍什么是存储过程,为什么使用.如何使用,并介绍如何创建和使用存储过程的基本语法 存储过程 在实际应用中,往往需要执行多个表的多条sql语句 存储过程就是为以后的使用而保存的一条或者 ...
- TCP\UDP协议 socket模块
目录 传输层主要协议 TCP协议 三次握手 TCP协议反馈机制 四次挥手 洪水攻击 UDP协议 socket模块 socket代码简介 socket.socket() server.bind() se ...
- xshell+Xftp下载
1.XShell免费官方网站下载地址:https://www.netsarang.com/zh/all-downloads/ 但是官网的地址贼慢,用以下方法下载 2.可以用这个下(写着中文官网):ht ...
- uniapp中封装一个弹框组件
第一步:在components下创建 popup.vue子组件: popup.vue中 <template> <view> <view class="popus ...
- SAP-FI模块 如何处理自动生成会计凭证增强
一. 相关问题概览 1. 固定资产业务过渡科目摘要增强功能-F-02 需用表BKPF.BSEG.T001.通过BUKRS.BELNR.GJAHR三个字段相等关联BKPF与BSEG.通过BKPF ...
- 推荐给Amy的书单
目录 皮囊 推荐等级 ※ ※ ※ ※ ※ 白夜行 推荐等级 ※ ※ ※ ※ ※ 人生 推荐等级 ※ ※ ※ ※ 活着 推荐等级 ※ ※ ※ ※ 许三观卖血记 推荐等级 ※ ※ ※ ※ 皮囊 推荐等级 ...
- Spark详解(02) - Spark概述
Spark详解(02) - Spark概述 什么是Spark Hadoop主要解决,海量数据的存储和海量数据的分析计算. Spark是一种基于内存的快速.通用.可扩展的大数据分析计算引擎. Hadoo ...
- ArcGIS插件-太乐地图
在很多行业,打败你的往往不是竞争对手,而是你意想不到的其他因素.回想十年前,如果能预料到现在的处境,也许当时的心态和做法会有所不同.在多年前,市场上出现包括水经注.太乐.BigeMap.91卫图等多种 ...