w5cValidator 插件基于angular原有的表单验证,在原有的基础上扩展了一些错误提示的功能,让大家不用在每个表单上写一些提示信息的模板,专心的去实现业务逻辑。

代码地址:https://github.com/why520crazy/w5c-validator-angular

关于v1.x版本的介绍参见:http://www.ngnice.com/posts/69f774dc4d3190

v1.0版本虽然简单的实现了想要的功能,但是没有按照模块独立出来,而且有很多代码不是很规范,这次正好抽时间重构了代码,直接升级到了 v2.0.0版本,同时也完善了一些展示案例功能。

如果你已经足够了解了angular或者之前使用过 w5cValidator,可以直接看展示程序:

展示地址:http://why520crazy.github.io/w5c-validator-angular

使用步骤:

  1. HTML 中引用 dest/w5cValidator.js;
  2. 启动module引用 "w5c.validator",如:
    var app = angular.module("app", ["w5c.validator"]);
  3. app.config事件中配置全局属性和显示规则:

    app.config(["w5cValidatorProvider", function (w5cValidatorProvider) {
    
         // 全局配置
    w5cValidatorProvider.config({
    blurTrig : false,
    showError : true,
    removeError: true });
    w5cValidatorProvider.setRules({
    email : {
    required: "输入的邮箱地址不能为空",
    email : "输入邮箱地址格式不正确"
    },
    username: {
    required: "输入的用户名不能为空",
    pattern : "用户名必须输入字母、数字、下划线,以字母开头"
    },
    password: {
    required : "密码不能为空",
    minlength: "密码长度不能小于{minlength}",
    maxlength: "密码长度不能大于{maxlength}"
    },
    number : {
    required: "数字不能为空"
    }
    });
    }]);

      

  4. 在HTML模板中form上使用指令 w5c-form-validate 和 w5c-submit
    w5c-form-validate指令表示该表单采用 w5cValidator的验证规则;
    w5c-submit 表示验证成功后调用的事件,当然w5c-submit可以不填写;

    <form class="form-horizontal w5c-form demo-form" role="form" w5c-submit="vm.saveEntity()"
    w5c-form-validate="vm.validateOptions" novalidate name="validateForm">
    <div class="form-group">
    <label class="col-sm-2 control-label">邮箱</label> <div class="col-sm-10">
    <input type="email" name="email" ng-model="entity.email" required="" class="form-control"
    placeholder="输入邮箱">
    </div>
    </div>
    <div class="form-group">
    <label class="col-sm-2 control-label">用户名</label> <div class="col-sm-10">
    <input required="" ng-pattern="/^[A-Za-z]{1}[0-9A-Za-z_]{1,19}$/" ng-model="entity.name"
    class="form-control" name="username" placeholder="输入用户名">
    </div>
    </div>
    <div class="form-group">
    <label class="col-sm-2 control-label">密码</label> <div class="col-sm-10">
    <input type="password" required="" ng-model="entity.password" name="password"
    class="form-control" ng-minlength="5" ng-maxlength="15"
    placeholder="输入密码">
    </div>
    </div>
    <div class="form-group">
    <label class="col-sm-2 control-label">数字</label> <div class="col-sm-10">
    <input type="number" required="" ng-model="entity.number" name="number" class="form-control"
    placeholder="输入数字">
    </div>
    </div>
    <div class="form-group" ng-show="validateForm.$errors.length > 0 && vm.showErrorType == 2">
    <label class="col-sm-2 control-label"></label> <div class="col-sm-10">
    <div class="alert alert-danger"></div>
    </div>
    </div> <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
    <button type="submit" class="btn btn-success"> 验证</button>
    </div>
    </div>
    </form>

注意事项:

  1. 由于验证使用的是 angular的form验证,所以必须要保证form和验证的元素都要有name属性;
  2. w5cValidatorProvider.setRules方法设置的rules名称是和表单验证元素的name相对应的;
  3. 如果你不想把验证成功事件w5c-submit写在 form上,可以直接在form里面的其他元素上使用w5cFormSubmit指令,如:
    <button type="buttom" w5c-form-submit="vm.saveEntity()" class="btn btn-success"> 验证</button>
  4. 如果你clone了代码。本地直接打开example/index.html是不可以运行,因为我使用了 $http服务去获取 js css html,所以必须要在本地搭建服务端程序,如果你有nodejs环境,运行npm install 安装module后再运行 grunt server ,如果没有grunt,用命令npm install grunt-cli -g安装, mac下需要 sudo npm install grunt-cli -g

参数

名称 默认值 作用
blurTrig false 光标移除元素后是否验证并显示错误提示信息
showError true 可以是bool和function,每个元素验证不通过后调用该方法显示错误信息,默认true,显示错误信息在元素的后面。
removeError true 可以是bool和function,每个元素验证通过后调用该方法移除错误信息,默认true,验证通过后在元素的后面移除错误信息。

w5cValidator【AngularJS】 2.0 版本发布的更多相关文章

  1. 【AngularJS】 2.0 版本发布

    [AngularJS] 2.0 版本发布 w5cValidator[AngularJS] 2.0 版本发布   w5cValidator 插件基于angular原有的表单验证,在原有的基础上扩展了一些 ...

  2. Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持

    Spring.Net.FrameworkV3.0 版本发布了,感谢大家的支持. Spring.Net.Framework,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开 ...

  3. 意料之外,情理之中,Spring.NET 3.0 版本发布-

    意料之外,情理之中,Spring.NET 3.0 版本发布- 备受社区和企业开发者广泛关注的Spring.NET在上周发布了3.0版本,并且目前已经保持着持续的更新,让我们一起来看一看他究竟发布了哪些 ...

  4. Kafka 1.0版本发布

    Kafka 1.0版本发布 1.0.0 2017年11月1日发布 源码下载: kafka-1.0.0-src.tgz(asc,sha512) 二进制下载: Scala 2.11 - kafka_2.1 ...

  5. go-wingui 2018 全新 v2.0 版本发布,包含重大更新!

    go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...

  6. JEECG 4.0 版本发布,JAVA快速开发平台

    JEECG 4.0 版本发布,系统全面优化升级,更快,更稳定!         导读                               ⊙平台性能优化,系统更稳定,速度闪电般提升      ...

  7. CAP 5.0 版本发布通告

    前言 今天,我们很高兴宣布 CAP 发布 5.0 版本正式版.同时我们也很高兴的告诉你 CAP 已经有越来越多的用户并且变得越来越流行. 在 5.0 版本中,我们主要致力于更好的支持 .NET 5 以 ...

  8. 支持边云协同终身学习特性,KubeEdge子项目Sedna 0.3.0版本发布!

    摘要:随着边缘设备数量指数级增长以及设备性能的提升,边云协同机器学习应运而生,以期打通机器学习的最后一公里. 本文分享自华为云社区<支持边云协同终身学习特性,KubeEdge子项目Sedna 0 ...

  9. 纪念BLives 1.0版本发布

    历时两个多月的时间,BLives程序1.0发布,在开发程序期间自己经历了很多,考试,恋爱,学业,自己很纠结 很伤心,有时候很无助,为了让自己有事干,我在考试备考期间去设计程序- -#,虽然程序设计的一 ...

随机推荐

  1. Linux IPC(Inter-Process Communication,进程间通信)之管道学习

    1.标准流管道 管道操作支持文件流模式,用来创建链接还有一个进程的管道,通过函数popen和pclose popen的详细介绍在本blog:Linux 多进程学习中有具体介绍 2.无名管道(PIPE) ...

  2. 如何有效地记录 Java SQL 日志(转)

    在常规项目的开发中可能最容易出问题的地方就在于对数据库的处理了,在大部分的环境下,我们对数据库的操作都是使用流行的框架,比如 Hibernate . MyBatis 等.由于各种原因,我们有时会想知道 ...

  3. Pro Aspnet MVC 4读书笔记(5) - Essential Tools for MVC

    Listing 6-1. The Product Model Class using System; using System.Collections.Generic; using System.Li ...

  4. 1第一个Android应用程序

    第一个程序从 Hello World 開始?? 或许C语言学习是从这開始的,可是书上不是这么開始的,或许起点就决定了高度?? 一.新建安卓项目 (1)选择安卓项目 (2)随便建个名字的项目,默认下一步 ...

  5. tomcat如何避免遭遇ClassNotFoundException

    于Tomcat紧接着为什么要创建一个类加载器Thread.currentThread().setContextClassLoader(catalinaLoader)?这里加载失败主要是为了避免以后加载 ...

  6. ABP应用层——数据传输对象(DTOs)

    ABP应用层——数据传输对象(DTOs) 基于DDD的现代ASP.NET开发框架--ABP系列之16.ABP应用层——数据传输对象(DTOs) ABP是“ASP.NET Boilerplate Pro ...

  7. 使用ExpandableListView时间轴效果达到

    不废话,首先在地图上,查看结果 这是用ExpandableListView来实现时间轴效果,原理比較简单,以月份为第一级,以天为第二级来实现的. package com.hj.main; import ...

  8. DevExpress XtraReports 入门六 控件以程序方式创建一个 交叉表 报表

    原文:DevExpress XtraReports 入门六 控件以程序方式创建一个 交叉表 报表 本文只是为了帮助初次接触或是需要DevExpress XtraReports报表的人群使用的,为了帮助 ...

  9. Git 常用命令手记 及 Github协同流程(转)

    符号约定俗成:<xxx> 自定义内容xxx:[xxx] xxx为可选项:[<xxx>] 自定义内容xxx且为可选项. 说明/备注 命令 备注 保存更新 git add [-i] ...

  10. codeforces 438D

    在大大推荐下这个标题不明的人做.而我的最后一个非常喜欢的段树,因此,愤怒出手.认为基本上相同.大值,当最大值小于取模时能够剪枝. 今后再遇到此类问题算是能攻克了 // file name: d.cpp ...