1.4.0 • Published 3 years ago

ivalid v1.4.0

Weekly downloads
2
License
ISC
Repository
github
Last release
3 years ago

ivalid

希望能帮到你

怎么用

  1. 安装npm i ivalid;
  2. import defineModel from ivalid,或者直接引用dist/www中的main.js文件
  3. 定义一个model并使用
    let M = defineModel(
        [
           {
            name        : "fname",
            required    : true,
            validator   : function () {
              return this.value.length > 3;
            }          
          },
          {
             name        : "fage",
             defaultValue: 28,
             validator   : function () {
                return this.value > 25;
             }
          }
        ]
    );
    let ins=new M();
    defineModel传入数组中的每一项将用来生成field。 实例ins可通过field的name访问所有field的值,比如ins.fname。 如果对field的值进行修改,ins将会自动对修改后的值进行验证,同时,ins会记验所有的证结果,以及哪些字段有修改。 另外,也可也与vue一起使用,参考demo/use-with-vue.html

defineModel(fieldOpt,watchOpt)

  • fieldOpt {array},field 配置项;
  • watchOpt [object], 用来监听field值的变化,key为field的name值,value为监听函数。

field配置项

  • name {string},字段名称;
  • type ["compute"|undefined],字段类型,默认为undefined,如果值为compute,则表示该字段的值要通过其它字段计算得到;
  • value [function],当type为compute,通过该配置来计算字段值;
  • required [boolean], 如果为ture,则值不能为undefined,null;
  • defaultValue [any],生成实例时,如果值为空时则使用该值;
  • validator [function|regex],值修改时使用的验证方式,函数必须返回布尔值;

model实例的属性

  • 每个field属性name的值将会作为model的属性;
  • $isModified,boolean,任一field发生修改则为true;
  • $isValid,boolean,所有field能过validator验证成功则为ture;
  • $modified,object,以key-value的形式记录每个field是否被修改;
  • $validation,object,以key-value的形式记录每个field的验证结果;

model实例的方法

  • $validate() ,验证字段的值是否正确;
  • $on(eventName,callback),为事件绑定监听,可监听的事件有:
    • $isModifiedChg,model的修改状态改变时触发,即$isModified属性发生改变;
    • $isValidChg,model的验证状态改变触发,即$isValid属性发生改变;
  • $on(eventName,callback),解除事件绑定的函数;
1.4.0

3 years ago

1.3.1

3 years ago

1.2.12

3 years ago

1.2.11

3 years ago

1.2.7

5 years ago

1.2.9

5 years ago

1.2.10

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.0

5 years ago

1.1.3

6 years ago

0.2.0

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago