AngularJS 的表单验证规则
angular.js 的表单验证规则有 required(必填项),type="number"(必须为数字),type="email"(必须为邮箱地址),ng-max(最大值),ng-min(最小值),ng-max-length(最大长度),ng-min-length(最小长度),ng-pattern(正则验证)等等,而且angular写自定的验证规则也很简单。
具体的验证细节参考官方文档:http://docs.angularjs.org/guide/forms
AngularJS 默认的验证是实时的,如果输入框输入值验证通过会在input上加入class ng-valid,如果验证不通过会自动添加 class ng-invalid,输入框输入了值之后自动加上了 class ng-dirty,这样系统可以很简单的通过修改 ng-invalid ng-valid ng-dirty 三个样式达到验证提示的目的。但是如果验证失败需要提示一段文字,那么只有通过编写模板来达到。
Angular.js 验证的缺点
- 提示信息是实时显示的,有时候我们更想要通过表单提交触发验证
- 写验证提示信息需要写大量模板:
<div> Size (integer 0 - 10): <input type="number" ng-model="size" name="size" min="0" max="10" integer />{{size}}<br /> <span ng-show="form.size.$error.integer">This is not valid integer!</span> <span ng-show="form.size.$error.min || form.size.$error.max"> The value must be in range 0 to 10!</span> </div>
w5cValidator 扩展插件的出现
Github上的源码地址为:https://github.com/why520crazy/w5c-validator-angular
目前版本v1.0.0
使用步骤:
-
在项目中引用 w5cValidator.js
-
在表单form上添加一个指令 w5c-form-validate 和 w5c-submit 如下所示:
<form class="form-horizontal cw-form demo-form" role="form" w5c-submit="js_save_entity(form_validate)" w5c-form-validate="" novalidate name="form_validate"> <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="user_name" placeholder="输入用户名"> </div> </div> ... </form>
w5c-submit 函数是表单验证成功后执行的事件,验证失败不会执行
-
没了,使用就这么简单
w5cValidator 使用注意事项:
-
w5cValidator 默认的错误提示使用了bootstrap的样式和布局,使用到你的项目中需要修改默认的 show_error, remove_error 方法,可以是tip提示,可以是统一在某个地方显示等等
-
w5cValidator 可以设置光标移走input时是否显示错误提示,默认false
-
w5cValidator 自带了默认的提示信息,同时支持自定义验证规则提示信息
-
angular.js的所有验证信息都是保存在form表单中的,w5cValidator也是监控表单元素的属性来实现的,使用必须要设置form以及每个元素的name属性,否则错误信息就找不到对应的元素
-
看下以下的代码你就能明白一切了:
w5cValidator.init({ //blur_trig : false, //show_error : function (elem, error_messages) { // //}, //remove_error: function (elem) { // //} }); w5cValidator.set_rules({ user_name: { required: "输入的用户名不能为空", pattern : "用户名必须输入字母、数字、下划线,以字母开头" } });
当然目前的 w5cValidator 还比较原始,NgNice的验证提示就是使用了w5cValidator
未来规划中的 w5cValidator 2.0
- 现在只能设置全局的显示类型,将来要支持单个表单的配置项,整个项目偶尔会有提示信息不同的情况
- 代码重构,以AngularJS的方式编写扩展
- 添加一些 AngularJS没有的验证类型 如 repeat ,uniquecheck 等
如果大家有什么更好的建议 可以共同探讨!!!
相关推荐
`w5cValidator` 是一个AngularJS验证信息框架的封装插件,它提供了一种更加灵活且易于使用的验证方式。 `w5cValidator` 的使用步骤如下: 1. 引入 `w5cValidator.js` 文件到项目中。 2. 在需要验证的表单上添加 `...
**AngularJS 管理系统框架详解** AngularJS 是一款由 Google 维护的前端 JavaScript 框架,它主要用于构建动态单页应用程序(SPA)。这个"angularjs 管理系统框架"是一个基于 AngularJS 和 Bootstrap 的后台管理...
在AngularJS框架中,开发人员经常需要处理表单验证,以确保用户输入的数据符合特定的业务规则。基于这个需求,自定义验证插件是提高效率和用户体验的有效手段。本插件就是这样一个解决方案,它允许开发者封装自己的...
AngularJS提供了强大的表单处理能力,如ng-model用于双向数据绑定,ng-form用于封装表单,以及内置的验证指令如ng-required。 10. **动画(Animation)** AngularJS提供了动画库,通过ngAnimate指令,开发者可以...
- **服务与工厂**:AngularJS的服务和工厂用于封装可重用的业务逻辑。服务(Service)和工厂(Factory)都可以提供方法供其他模块调用,但是它们的初始化时机不同。 #### 知识点五:案例分析与最佳实践 - **案例...
在"基于AngularJs框架的BootStrap模板整合"项目中,开发者通常会利用AngularJS的指令系统来封装Bootstrap组件,比如模态框、下拉菜单、导航条等,使其能够响应Angular的数据模型变化,动态地更新视图。此外,...
5. **服务(Services)**:AngularJS的服务用于封装业务逻辑和数据,例如,可以创建一个`StudentService`来处理学生信息的增删改查操作。 6. **路由(Routing)**:AngularJS的`$routeProvider`或`$router`服务用于...
6. **表单处理**:AngularJS提供了表单验证和数据绑定的支持,这使得创建动态表单变得非常简单。表单处理章节会详细介绍如何使用AngularJS的表单API来创建响应式和可复用的表单。 7. **路由(Routing)**:单页应用...
### Struts1的Validator验证框架详解 在Java Web开发领域,Struts1作为一个经典且流行的MVC框架,提供了丰富的功能来构建动态Web应用。其中,Validator框架是Struts1用于客户端和服务端表单验证的强大工具,它能...
AngularJS,是由Google维护的前端JavaScript框架,用于构建交互式、单页面的Web应用程序。它在Web开发领域中扮演着重要角色,特别是在构建复杂的后台管理系统和企业级应用方面。这个"angularjs框架后台管理模板网站...
AngularJS,通常简称为AngularJS或AngularJS 1.x,是由Google维护的一个开源JavaScript框架,主要用于构建动态Web应用。它利用MVC(Model-View-Controller)架构模式,使得前端开发更加高效,同时提高了代码的可测试...
AngularJS 是一款强大的JavaScript框架,由Google开发,用于构建单页应用程序(SPA)。它通过提供数据绑定和依赖注入等特性,极大地简化了前端开发。本参考手册将详细讲解AngularJS的核心概念、API以及最佳实践。 ...
7. **AngularJS验证**(ngMessages):提供了一种优雅的方式来显示表单验证错误。 8. **AngularJS Cookie**:处理客户端cookie,便于存储用户状态或偏好设置。 9. **AngularJS UI Bootstrap**:基于Bootstrap的...
Service是通过依赖注入的方式使用的,这保证了Service的实例在AngularJS应用中的唯一性,以及通过Service封装身份验证逻辑可以提高代码的可维护性和安全性。 在AngularJS中实现Service进行身份验证的步骤通常包括:...
AngularJS,作为Google维护的一款强大的前端JavaScript框架,自2009年发布以来,已经在Web开发领域取得了显著的地位。它通过数据绑定和依赖注入等核心特性,极大地简化了MVC(Model-View-Controller)架构的应用开发...
- **表单处理**:AngularJS提供了强大的表单验证和处理能力,简化了前端表单的工作量。 #### 三、AngularJS的开发环境搭建 为了开始使用AngularJS开发项目,需要完成以下步骤: 1. **安装Node.js**:Node.js是一...
AngularJS是一款由Google维护的JavaScript框架,主要用于构建富交互式的单页应用程序(SPA)。而Node.js则是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行开发,实现了全栈...
4. **表单(Forms)**:AngularJS提供了强大的表单处理功能,包括内置的验证规则和表单控件的状态管理。 5. **国际化(I18n)与本地化(L10n)**:AngularJS支持多种语言和文化特性的显示,使其易于在国际化的环境中使用...
9. **表单和验证**:AngularJS提供了强大的表单处理和验证能力,可以实时验证用户输入,并在视图中显示错误信息。 10. **测试**:AngularJS提供了一套完整的测试工具,如 Karma 和 Jasmine,便于进行单元测试和...