2.2.3 • Published 3 years ago

am-form-validate v2.2.3

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

初衷:由于H5移动端框架方面(类似于vant,mint-ui等)基本很少做表单验证的相关功能,一旦遇到某个页面form中大量的字段验证,无法形成有效的规则验证化。此插件仿照ant-desgin-vue表单验证编写,相似度90%以上,主要是为了容易上手,降低团队的学习成本,拿来即用。此插件已发布npm包,分为vue2和vue3两个版本,对应am-form-validate和am-form-validate@next。

快速上手:

yarn add am-form-validate 或 yarn add am-form-validate@next

全局使用
import Vue from 'vue'
import amFormValidate from 'am-form-validate'
Vue.use(amFormValidate)

局部使用
直接引用am-form-validate/lib三个组件,在components中注册使用

API

Form

参数说明对象类型默认值
model表单数据对象object
rules表单验证规则object
labelAlignlabel标签文本对齐方式'left'|'right''right'
inline是否行内对齐booleanfalse
labelWidthlabel文本宽度'px'|'em'|'rem'|'auto'|number'auto'
errorShow显示错误信息booleantrue

事件

事件名称说明回调参数
validate任一表单项被校验后触发被校验的表单项 prop 值,校验是否通过,错误消息
submit数据验证成功后回调事件Function(e:Event)

方法

方法名说明参数
validate对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入两个参数:是否校验成功和未通过校验的字段。Function(callback: Function(boolean, array))
validateField对部分表单字段进行校验的方法,返回每个字段是否校验成功状态和相应字段及信息Function(props: array | string, callback: Function(errorMessage: object|array))
resetFields对整个表单进行重置,将所有字段值重置为初始值并移除校验结果
clearValidate移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组。Function(props: array | string)

Form.Item

参数说明类型默认值
prop表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的string
labellabel 标签的文本string
labelAlign标签文本对齐方式‘left'|’right''right'
labelWidth标签文本宽度‘px'|'em'|'rem'|'auto'|number'auto'
required是否必填booleantrue
requiredMsg必填的错误信息string属性名+‘不能为空’
autoChecked对于其它非input组件必填,对值进行自动校验booleanfalse

校验规则

ant-desgin-vue使用了async-validator这个库配置校验规则。但本插件为了避免过分依赖其它库,除了required内置校验规则外,其它都需要自己写validator进行验证。在rules中配置,以下是phone字段配置实例

phone: [
        {
          validator: (value, callback) => {
            if (!/^1\d{10}$/.test(value)) {
              callback("请输入正确的手机号");
            }
          },
          trigger: "blur",
        },
  ]

每个字段可以配置多个规则,每个规则对象有validator和trigger属性,validator为规则函数,第一个参数是字段值,第二个是抛出相应错误信息的函数,参数为string或error实例(一旦捕捉到错误信息,同一字段的后面规则便不再执行)。trigger为触发条件,值为blur' | 'change' | 'change', 'blur',默认为'change', 'blur'。由于此插件是用在移动端,基本是input组件使用trigger这个属性。其它非input组件可以使用autoChecked进行自动实时校验,类似‘change’。或者使用validateField方法在相关事件函数中手动校验。

template模板(model和rules定义与ant-desgin-vue一样)

<am-form
      ref="form"
      :model="formData"
      :rules="rules"
      :labelAlign="'left'"
      inline
      @submit="submit"
      @validate="validate"
    >
      <am-form-item
        required
        label="名称:"
        required-msg="名字不能为空"
        prop="name"
        :labelAlign="'left'"
      >
        <am-input v-model="formData.name" />
      </am-form-item>
  </am-form>
2.2.1

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

3.0.9

3 years ago

3.0.8

3 years ago

2.2.0

3 years ago

2.1.9

3 years ago

3.0.7

3 years ago

2.1.8

3 years ago

3.0.6

3 years ago

3.0.5

3 years ago

2.1.7

3 years ago

2.1.6

3 years ago

2.1.5

3 years ago

2.1.4

3 years ago

2.1.3

3 years ago

2.1.2

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

2.0.0

3 years ago

3.0.0

3 years ago

1.0.0

3 years ago