1. 以下内容转自iview社区,仅供自己查看使用
  2.  
  3. Form表单部分
  4. <div>
  5. <Form ref="FormOne" :model="FormOne" :rules="ruleFormOne" :label-width="80">
  6. <FormItem label="姓名" prop="name">
  7. <i-input type="text" v-model="FormOne.name"></i-input>
  8. </FormItem>
  9. <FormItem label="身份证" prop="idCard">
  10. <i-input type="text" v-model="FormOne.idCard"></i-input>
  11. </FormItem>
  12. <FormItem>
  13. <Button type="primary" @click="handleSubmit('FormOne')">提 交</Button>
  14. <Button @click="handleReset('FormOne')" style="margin-left: 8px">重 置</Button>
  15. </FormItem>
  16. </Form></div>
  17. 新建 Format.js 文件,编写校验规则
  18. 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 () {
  19. // eslint-disable-next-line
  20. function FormValidate() {}
  21. // From表单验证规则 可用于公用的校验部分
  22. FormValidate.Form = function () {
  23. return {
  24. // 姓名的验证规则
  25. Email: function (rule, value, callback) {
  26. if (!value) {
  27. return callback(new Error('邮箱不能为空'))
  28. }
  29. if (!email.test(value)) {
  30. callback(new Error('请输入正确的邮箱!'))
  31. } else {
  32. callback()
  33. }
  34. },
  35. // 身份证的验证规则
  36. ID: function (rule, value, callback) {
  37. if (!value) {
  38. return callback(new Error('身份证不能为空'))
  39. }
  40. if (!regId.test(value)) {
  41. callback(new Error('请输入正确的二代身份证号码'))
  42. } else {
  43. callback()
  44. }
  45. },
  46. // 电话号码的验证
  47. Tel: (rule, value, callback) => {
  48. if (!value) {
  49. return callback(new Error('电话不能为空'))
  50. }
  51. if (!tel.test(value)) {
  52. callback(new Error('请正确填写电话号码'))
  53. } else {
  54. callback()
  55. }
  56. }
  57. }
  58. }
  59.  
  60. // FromOne表单验证规则 用于FromOne个性化的校验
  61. FormValidate.FormOne = function () {
  62. return {
  63. // 姓名的验证规则
  64. Name: function (rule, value, callback) {
  65. if (!value) {
  66. return callback(new Error('姓名不能为空'))
  67. }
  68. if (!isNaN(value)) {
  69. callback(new Error('请输入正确姓名!'))
  70. } else if (value.length < 2 || value.length > 6) {
  71. callback(new Error('请输入2到6个字符!'))
  72. } else {
  73. callback()
  74. }
  75. }
  76. }
  77. }
  78.  
  79. // FromTwo表单验证规则 用于FromTwo表单个性化的校验
  80. FormValidate.FormTwo = function () {
  81. return {
  82. // 传真的校验规则
  83. Fax: (rule, value, callback) => {
  84. if (!value) {
  85. return callback(new Error('传真不能为空'))
  86. }
  87. if (!fax.test(value)) {
  88. callback(new Error('请正确填写传真'))
  89. } else {
  90. callback()
  91. }
  92. }
  93. }
  94. }
  95. return FormValidate
  96. }())
  97. exports.FormValidate = FormValidate
  98. 在组件的js中引入 Format.js文件
  99. import Format from "./Format.js"
  100. 组件内js部分
  101. export default {
  102. data() {
  103. return {
  104. FormOne: {
  105. name: "",
  106. idCard: "",
  107. age: ""
  108. },
  109. ruleFormOne: {
  110. name: [
  111. {
  112. validator: Format.FormValidate.FormOne().Name,
  113. trigger: "blur"
  114. }
  115. ],
  116. idCard: [
  117. {
  118. validator: Format.FormValidate.Form().Tel,
  119. trigger: "blur"
  120. }
  121. ]
  122. }
  123. };
  124. },
  125. mounted() {
  126. console.log(Format.FormValidate.FormOne().name);
  127. },
  128. methods: {
  129. handleSubmit(name) {
  130. this.$refs[name].validate(valid => {
  131. if (valid) {
  132. this.$Message.success("Success!");
  133. } else {
  134. this.$Message.error("Fail!");
  135. }
  136. });
  137. },
  138. handleReset(name) {
  139. this.$refs[name].resetFields();
  140. }
  141. }
  142. };

  1.  

  

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. eclipse springboot运行helloworld错误: 找不到或无法加载主类 xxx.xxx.xxx

    这个错误,在网上搜找了好久,说是什么jar包冲突,什么环境配置,我经过验证均是正确的,javac java java -version 都没问题,环境变量也OK,各种解释均没有能够解决我的问题,最后好 ...

  2. STM32+Nokia5110LCD

    Nokia5110LCD(84*48) lcd.h #ifndef _LCD_H#define _LCD_H #include "sys.h" #include "std ...

  3. nuxt.js 初始化 npm run dev 报错

    在初始化 npm install 了基本依赖后: npm run dev 报错: error in ./server/index.js Module build failed: Error: Plug ...

  4. loadBeanDefinitions方法源码跟踪(三)

    因为字数超过了限制,所以分成了三篇,承接上篇: https://www.jianshu.com/p/46e27afd7d96 代码过宽,可以shift + 鼠标滚轮 左右滑动查看 4.parseCus ...

  5. 008、Java中变量与常量的区别

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

  6. 013.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以数组的方式返回查询结果

    01. 我们在CI4框架中的Model文件夹新建一个User_model.php的文件,使用的是getResultArray,表示并让数据以数组的方式返回查询结果,代码如下: <?php nam ...

  7. HDU 4960 Handling the past 2014 多校9 线段树

    首先确定的基本思想是按时间离散化后来建线段树,对于每个操作插入到相应的时间点上 但是难就难在那个pop操作,我之前对pop操作的处理是找到离他最近的那个点删掉,但是这样对于后面的peak操作,如果时间 ...

  8. SpringBoot-拦截器配置

    SpringBoot-拦截器配置 SpringBoot-拦截器配置 在我们的SSM项目中,可以在web.xml中配置拦截器,但是在SpringBoot中只能使用java类来配置,配置方法如下. 创建拦 ...

  9. pyhton scipy最小二乘法(scipy.linalg.lstsq模块)

    最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方之和来作为目标J(θ)J(θ),从而找到最优模型. 7. SciPy最小二乘法 最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方 ...

  10. 点亮一个LED之参数传递规则

    1 说明 实验平台: JZ2440 CPU:       S3C2440 2 ARM-THUMB Procedure Call Standard(ATPCS: ARM-Thumb过程调用标准) 图1 ...