美文网首页
vue表单验证插件vva-js

vue表单验证插件vva-js

作者: 小前seant | 来源:发表于2017-05-25 15:11 被阅读260次

最近写了一个vue的表单验证插件,第一次写插件,其中的一些设计模式不够优化,产品逻辑不够成熟,但作为自己的第一个完成的插件,写完了还是觉得小有收获的,特此记录。

目标

主要目标:将需要绑定验证的表单元素根据绑定的规则进行验证,验证通过则可进行表单提交(规则通过后由用户编写通过后程序逻辑)

整体思路

具体思路

1.vue实例中自定义部分

表单验证主要需要三种信息:1.用户自定义规则;2.提示信息;3.验证的时机
每条输入的规则可能是多个的,对应的提示信息也不相同,此处均供用户自己填写,形如:

<input type="text" id="test" v-vva:test="{length: /^.{5}$/, valid: /^\w+$/}" v-vva-msg="{length: '长度必须为五个字符', valid: '必须位有效字符'}">
<input type="button" v-vva-check value="校验">

下面参照vue自定义指令文档说明来解释一下:


v-vva为自定义指令,:test (arg)为验证规则名称,每个实例中验证规则名称必须确保唯一性,{length: /^.{5}$/, valid: /^\w+$/} (value)为用户自定义的规则,其中属性名代表用户为每个规则添加的标识,和v-vva-msg中相互对应。v-vva-msg为用户自定义的提示信息,根据不同的未成功校验的值显示对应的提示信息。
点击含有v-vva-check指令的元素后将对每个添加有v-vva指令的元素进行校验。校验通过后,会调用该vue实例的vva_submit()方法,如:
methods: {
    vva_submit: function() {
      alert('已经成功通过校验')
    }
  }

实际上这地方我是想可以实现v-vva-check="fn"的形式,当通过校验后调用fn,无奈作为vue小白一枚,这里的value出现问题,因此先采用这样的权宜之计,以后再分析问题原因。

2.vva.js

vue文档中说明,编写vue插件需要提供install方法,因此主要在install中添加事件监听方法和自定义指令。
我想实现这种效果:点击校验按钮,未通过校验的输入框均为红框,提示消息出现在第一个红框上,之后用户每次更改输入值均会进行校验,提示消息始终出现在第一个未通过校验的输入框中,若第一个输入值已通过校验,提示消息会提示剩下未通过校验的第一个输入框。
写了几天的代码,今天回想起来,在vva.js中主要也就做了两件事:

  • 校验未通过则增加标识类名
  • 利用观察者连接未通过的表单元素与提示消息框

剩下的也就是校验逻辑,何时生成消息、何时调用消息、何时摧毁消息,以及各个功能的细化拆分以及提升鲁棒性。
反思一下,写这样的程序必须要对整个事件的流程和设计有一个清晰的规划。这一点我开始没有做好,绕了不少弯子。

3.tooltip.js

校验未通过后调用的气泡工具,提供显示、隐藏、生成、摧毁的功能。
项目地址参见Git

不满意的地方:除了文中提到的通过校验后的调用方法外,vva.js和tooltip.js未做到完全分离,实际上vva.js应该只做校验的事情,vva.js与tooltip.js之间的耦合的越少越好,然而在vva.js中出现了多次生成、摧毁冒泡的地方,这样的方式不够干净。

相关文章

  • vue表单验证插件vva-js

    最近写了一个vue的表单验证插件,第一次写插件,其中的一些设计模式不够优化,产品逻辑不够成熟,但作为自己的第一个完...

  • jquery 插件

    Validation : 表单验证插件 jquery form: 表单插件 simpleModal; 模态窗口插件...

  • vue 表单验证插件demo

    吐槽一下,现在找个前端工作怎么这么难啊!!官方推荐插件的写法:https://cn.vuejs.org/v2/gu...

  • Jquery常用插件总结

    1.表单验证插件——validate $(form).validate({options}) 2.表单插件——fo...

  • 简介

    jQuery-validation | 基于jQuery验证表单前端插件主要验证用户输入信息 注意:该插件不会验证...

  • jQuery常用控件

    1、表单验证插件——validate validate插件自动根据规则进入验证,并显示提示信息,验证成功后,表...

  • jQuery-validate插件使用

    介绍:jQuery-validate插件是一款表单验证插件,可以自定义很多复杂的表单验证规则,十分方便.

  • Validform小结

    Validform不错的表单验证插件,其核心思想就是把所有的验证条件及验证提示信息绑定到每个表单元素,让验证代码在...

  • 第 9 章 jQuery 常用插件

    表单验证插件—— validate 该插件自带包含必填、数字、URL 在内容的验证规则,即时显示异常信息,此外,还...

  • vue 表单验证插件 vue-verify-plugin

    1.npm下载 2.main.js里面引入(很多组件需要用到,直接全局引用) 3.在需要的组建里

网友评论

      本文标题:vue表单验证插件vva-js

      本文链接:https://www.haomeiwen.com/subject/vuxzxxtx.html