以下内容转自iview社区,仅供自己查看使用

Form表单部分
<div>
<Form ref="FormOne" :model="FormOne" :rules="ruleFormOne" :label-width="80">
<FormItem label="姓名" prop="name">
<i-input type="text" v-model="FormOne.name"></i-input>
</FormItem>
<FormItem label="身份证" prop="idCard">
<i-input type="text" v-model="FormOne.idCard"></i-input>
</FormItem>
<FormItem>
<Button type="primary" @click="handleSubmit('FormOne')">提 交</Button>
<Button @click="handleReset('FormOne')" style="margin-left: 8px">重 置</Button>
</FormItem>
</Form></div>
新建 Format.js 文件,编写校验规则
var regId = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/var email = /^(\w+\.?)*\w+@(?:\w+\.)\w+$/var tel = /^1[345789]\d{9}$/var fax = /^(\d{3,4}-)?\d{7,8}$/var FormValidate = (function () {
// eslint-disable-next-line
function FormValidate() {}
// From表单验证规则 可用于公用的校验部分
FormValidate.Form = function () {
return {
// 姓名的验证规则
Email: function (rule, value, callback) {
if (!value) {
return callback(new Error('邮箱不能为空'))
}
if (!email.test(value)) {
callback(new Error('请输入正确的邮箱!'))
} else {
callback()
}
},
// 身份证的验证规则
ID: function (rule, value, callback) {
if (!value) {
return callback(new Error('身份证不能为空'))
}
if (!regId.test(value)) {
callback(new Error('请输入正确的二代身份证号码'))
} else {
callback()
}
},
// 电话号码的验证
Tel: (rule, value, callback) => {
if (!value) {
return callback(new Error('电话不能为空'))
}
if (!tel.test(value)) {
callback(new Error('请正确填写电话号码'))
} else {
callback()
}
}
}
} // FromOne表单验证规则 用于FromOne个性化的校验
FormValidate.FormOne = function () {
return {
// 姓名的验证规则
Name: function (rule, value, callback) {
if (!value) {
return callback(new Error('姓名不能为空'))
}
if (!isNaN(value)) {
callback(new Error('请输入正确姓名!'))
} else if (value.length < 2 || value.length > 6) {
callback(new Error('请输入2到6个字符!'))
} else {
callback()
}
}
}
} // FromTwo表单验证规则 用于FromTwo表单个性化的校验
FormValidate.FormTwo = function () {
return {
// 传真的校验规则
Fax: (rule, value, callback) => {
if (!value) {
return callback(new Error('传真不能为空'))
}
if (!fax.test(value)) {
callback(new Error('请正确填写传真'))
} else {
callback()
}
}
}
}
return FormValidate
}())
exports.FormValidate = FormValidate
在组件的js中引入 Format.js文件
import Format from "./Format.js"
组件内js部分
export default {
data() {
return {
FormOne: {
name: "",
idCard: "",
age: ""
},
ruleFormOne: {
name: [
{
validator: Format.FormValidate.FormOne().Name,
trigger: "blur"
}
],
idCard: [
{
validator: Format.FormValidate.Form().Tel,
trigger: "blur"
}
]
}
};
},
mounted() {
console.log(Format.FormValidate.FormOne().name);
},
methods: {
handleSubmit(name) {
this.$refs[name].validate(valid => {
if (valid) {
this.$Message.success("Success!");
} else {
this.$Message.error("Fail!");
}
});
},
handleReset(name) {
this.$refs[name].resetFields();
}
}
};


  

Form表单部分

<div>

<Form ref="FormOne" :model="FormOne" :rules="ruleFormOne" :label-width="80">

<FormItem label="姓名" prop="name">

<i-input type="text" v-model="FormOne.name"></i-input>

</FormItem>

<FormItem label="身份证" prop="idCard">

<i-input type="text" v-model="FormOne.idCard"></i-input>

</FormItem>

<FormItem>

<Button type="primary" @click="handleSubmit('FormOne')">提 交</Button>

<Button @click="handleReset('FormOne')" style="margin-left: 8px">重 置</Button>

</FormItem>

</Form></div>

新建 Format.js 文件,编写校验规则

var regId = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/var email = /^(\w+\.?)*\w+@(?:\w+\.)\w+$/var tel = /^1[345789]\d{9}$/var fax = /^(\d{3,4}-)?\d{7,8}$/var FormValidate = (function () {

// eslint-disable-next-line

function FormValidate() {}

// From表单验证规则  可用于公用的校验部分

FormValidate.Form = function () {

return {

// 姓名的验证规则

Email: function (rule, value, callback) {

if (!value) {

return callback(new Error('邮箱不能为空'))

}

if (!email.test(value)) {

callback(new Error('请输入正确的邮箱!'))

} else {

callback()

}

},

// 身份证的验证规则

ID: function (rule, value, callback) {

if (!value) {

return callback(new Error('身份证不能为空'))

}

if (!regId.test(value)) {

callback(new Error('请输入正确的二代身份证号码'))

} else {

callback()

}

},

// 电话号码的验证

Tel: (rule, value, callback) => {

if (!value) {

return callback(new Error('电话不能为空'))

}

if (!tel.test(value)) {

callback(new Error('请正确填写电话号码'))

} else {

callback()

}

}

}

}

// FromOne表单验证规则  用于FromOne个性化的校验

FormValidate.FormOne = function () {

return {

// 姓名的验证规则

Name: function (rule, value, callback) {

if (!value) {

return callback(new Error('姓名不能为空'))

}

if (!isNaN(value)) {

callback(new Error('请输入正确姓名!'))

} else if (value.length < 2 || value.length > 6) {

callback(new Error('请输入2到6个字符!'))

} else {

callback()

}

}

}

}

// FromTwo表单验证规则  用于FromTwo表单个性化的校验

FormValidate.FormTwo = function () {

return {

// 传真的校验规则

Fax: (rule, value, callback) => {

if (!value) {

return callback(new Error('传真不能为空'))

}

if (!fax.test(value)) {

callback(new Error('请正确填写传真'))

} else {

callback()

}

}

}

}

return FormValidate

}())

exports.FormValidate = FormValidate

在组件的js中引入 Format.js文件

import Format from "./Format.js"

组件内js部分

export default {

data() {

return {

FormOne: {

name: "",

idCard: "",

age: ""

},

ruleFormOne: {

name: [

{

validator: Format.FormValidate.FormOne().Name,

trigger: "blur"

}

],

idCard: [

{

validator: Format.FormValidate.Form().Tel,

trigger: "blur"

}

]

}

};

},

mounted() {

console.log(Format.FormValidate.FormOne().name);

},

methods: {

handleSubmit(name) {

this.$refs[name].validate(valid => {

if (valid) {

this.$Message.success("Success!");

} else {

this.$Message.error("Fail!");

}

});

},

handleReset(name) {

this.$refs[name].resetFields();

}

}

};

 .

方法是共通的 在其他Vue组件库中同样使用

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

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

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

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

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

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

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

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

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

  5. vue+element 表单封成组件(1)

    作为一名刚接触vue不到一个月的菜鸟,思想还没有从操作DOM转变为数据驱动,看vue的代码处处别扭.组里为了让我熟悉vue交给了我一个将element 表单封装成组件的练手任务.由于开发过程中遇到的表 ...

  6. aspx中的表单验证 jquery.validate.js 的使用 以及 jquery.validate相关扩展验证(Jquery表单提交验证插件)

    这一期我们先讲在aspx中使用 jquery.validate插件进行表单的验证, 关于MVC中使用 validate我们在下一期中再讲     上面是效果,下面来说使用步骤 jQuery.Valid ...

  7. v-if案例解析(element-ui form-item 结合 v-if 动态生成rule规则\表单元素,表单无法验证问题剖析 )

    fire 读在最前面: 1.此文章衔接Vue 虚拟Dom 及 部分生命周期初探,相关整体知识点请先阅读后再继续本文阅读 问:当v-if为true时,会重新渲染相关dom节点吗? <child v ...

  8. 深入了解Element Form表单动态验证问题 转载

    随风丶逆风 2020-04-03 15:36:41  2208  收藏 3 分类专栏: Vue 随笔 文章标签: 动态验证 el-form elementUI 表单验证 版权 在上一篇<vue ...

  9. thinkphp表单自动验证

    ThinkPHP框架表单验证 对注册到test表的表单进行验证 在注册之前要对表单进行验证: 用户名非空验证,两次输入密码必须一致即相等验证,年龄在18~50之间即范围验证,邮箱格式正则验证. 自动验 ...

随机推荐

  1. 清北学堂模拟赛2 T2 ball

    题目大意: 多组数据,每组给定n,m,表示将n个小球放进m个箱子,每个小球均有两个箱子(可能相同)可放,求所有小球均放好的方案mod998244353的总数. 思路: 算是我和题解思路肥肠相近的一道题 ...

  2. [Codeforces]1263C Everyone is a Winner!

    题目 On the well-known testing system MathForces, a draw of nnn rating units is arranged. The rating w ...

  3. 033、Java中使用简化运算符

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  4. 009.CI4框架CodeIgniter, 网页访问GET的URL参数获取,分段输出URL参数

    01.代码如下,我们给在PHP CI4框架中定义了一个show函数,并给了3个参数,代码如下: <?php namespace App\Controllers\System; use App\C ...

  5. 使用conda创建虚拟环境

    conda创建python虚拟环境 前言 conda常用的命令: conda list 查看安装了哪些包. conda env list 或 conda info -e 查看当前存在哪些虚拟环境 co ...

  6. JAVAWEB limit 分页 (转载)

    原文来自于      https://www.jianshu.com/p/553fc76bb8eb  作者写的很不错 只是为了自己方便学习转载的  代码我就不贴了 我是 Oracle 要改一些代码 原 ...

  7. 17 Resources AssetBundle资源打包

    Resources在Unity中可以使用www类加载远程文件或本地文件,或是在脚本中定义字段或数组从外部拖入. 在Unity中提供了Resources类读取资源要通过Resources类读取的文件必须 ...

  8. java正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合

    一.需求:密码必须是包含大写字母.小写字母.数字.特殊符号(不是字母,数字,下划线,汉字的字符)的8位以上组合 二.方案:利用正则表达式来校验 三.思路:排除法 1.排除大写字母.小写字母.数字.特殊 ...

  9. 关于如何实现一个Saga分布式事务框架的思考

    关于Saga模式的介绍,已经有一篇文章介绍的很清楚了,链接在这里:分布式事务:Saga模式. 关于TCC模式的介绍,也已经有一篇文章介绍的很清楚了,链接在这里:关于如何实现一个TCC分布式事务框架的一 ...

  10. centos7上安装mysql8

    话不多说仍然是更换虚拟机的系列安装. 一.首先下载最先版的mysql.到官网下载https://dev.mysql.com/downloads/file/?id=477146 下载后上传linux到相 ...