Angular自动为<form>元素增加了一些很好用的特性,使其更适合开发单页面应用。其中一个特性是,Angular允许你为表单中的输入元素定义一个合法的状态,并且只有当所有元素是合法状态时才允许提交表单。
例如,创建一个新用户注册表单,要求必须输入用户名和邮件地址,但是年龄字段是可选的,在这些字段被提交到服务器之前我们可以校验这几个输入项。
利用Angular的<form>扩展以及大量的输入元素,我们可以在模板中实现以上效果,示例如下:
<html ng-app='myApp'> <head> <title>form实例</title> </head> <body> <h1>Sign Up</h1> <form name='addUserForm' ng-controller='AddUserController'> <div ng-show='message'>{{message}}</div> <div>First name:<input ng-model='user.first' required></input></div> <div>Last name:<input ng-model='user.last' required></input></div> <div>Email:<input type='email' ng-model='user.email' required></input></div> <div>Age:<input type='number' ng-model='user.age' ng-maxlength='3' ng-minlength='1'></input></div> <div><button ng-click='addUser()' ng-disabled='!addUserForm.$valid'>Submit</button></div> </form> <script src="lib/angular/angular.js"></script> <script> var myApp=angular.module('myApp',[]); myApp.controller('AddUserController', function($scope) { $scope.message = ''; $scope.addUser = function() { $scope.message = 'Thanks,' + $scope.user.first + ',we added you!'; }; }); </script> </body> </html>
运行结果:
输入完成后,Submit按钮可点击
点击后页面如下:
注意,我们使用了HTML5的required属性以及email和number两种输入类型,用来校验其中的一些字段。这一机制在Angular中工作得很好,而对于那些老式的不支持HTML5的浏览器来说,Angular会自动使用指令来适配,从而实现相同的功能。
在控制器中,我们可以通过$valid属性获取表单的校验状态。当表单中的所有输入项都合法时,Angular将会把这个属性设置为true。我们可以使用$valid属性来做很多很炫的事情,例如当表单没有输入完成时可以禁用Submit按钮。如上实例,我们在Submit按钮上添加一个ng-disabled指令,从而避免提交非法状态的表单。
资料来源:《用AngularJS开发下一代Web应用》
相关推荐
在AngularJS中,表单验证是确保用户输入数据有效性和完整性的关键机制。这篇博文将深入探讨如何在AngularJS中实现表单校验,以创建更健壮和用户体验良好的应用程序。 ### 一、表单基础 在AngularJS中,`<form>`...
AngularJS是Google开发的一个开源JavaScript框架,它扩展了HTML,并且引入了模型-视图-控制器(MVC)...通过这些示例,开发者能够了解如何将AngularJS的表单验证应用于实际开发工作中,确保用户输入的有效性和安全性。
本教程将详细讲解如何创建一个自定义正则表达式校验指令,以实现对用户输入的http链接和纯数字的有效性验证。 一、理解AngularJS指令 AngularJS指令是用于增强HTML的特殊属性,通过`ng-`前缀标识,如`ng-repeat`、`...
AngularJS动态校验是Web开发中的一个重要概念,尤其在构建复杂表单和处理用户输入时。AngularJS,作为一款强大的JavaScript框架,提供了丰富的功能来帮助开发者实现动态验证,提高用户体验并确保数据的准确性和完整...
使用`ng-change`或`ng-blur`事件,可以在用户输入变化或离开输入字段时触发远程验证。通过`$http`服务发送请求,并在收到响应后更新模型的`$error`属性。 ```javascript ()"> ``` ```javascript $scope....
这样,当用户输入不符合规则的HTTP地址或非数字时,输入框会显示为红色,并且表单无法提交,直到输入满足条件。 总结,AngularJS自定义指令为我们提供了一种灵活的方式,通过结合正则表达式,可以在前端实现高效的...
在前端开发中,表单校验是一个不可或缺的功能,它能够确保用户输入的数据符合预期的格式,并且有助于提高数据的准确性和安全性。AngularJs在处理表单和表单校验方面提供了丰富的API和指令。 在AngularJs中,表单...
在用户输入时,ng-keyup事件会触发$scopes.clearNoNum函数,从而实现对输入框内容的实时校验。 总结来说,通过创建一个JavaScript函数,并利用AngularJS的ng-keyup事件和ng-model指令,可以有效地控制input元素的...
在图案锁应用中,控制器将处理用户的输入,调用服务来保存和验证图案,以及管理其他业务逻辑。 5. **模型和视图**:在图案锁中,模型将包含用户绘制的图案(如一系列连接的点),而视图则是一个可交互的网格,用户...
1. 必填项校验:使用HTML5的`required`属性可以在用户输入信息前进行校验,确保表单的某个字段已被填写。 2. 文本长度校验:使用`ng-minlength`和`ng-maxlength`指令可以限制输入字段中的字符数,`ng-minlength`...
- **表单验证**:AngularJS内置了表单验证功能,可以很方便地对用户的输入进行校验。例如,使用`ng-required`、`ng-minlength`等属性来设置表单字段的验证规则。 - **服务与工厂**:AngularJS的服务和工厂用于封装可...
自定义指令中,使用了正则表达式来定义校验规则,即校验用户输入是否包含数字、大写字母和小写字母至少各一项。通过正则表达式匹配输入值,并返回匹配失败的布尔值,从而实现自定义校验逻辑。 指令中使用了$parser...
在探讨AngularJS框架中的表单验证时,我们首先要认识到AngularJS为开发者提供了一套强大的表单处理机制,这包括了手动验证和自动验证两种方式。手动验证主要是利用AngularJS提供的指令和API来实现的,而自动验证则...
AngularJS的表单处理机制涵盖了从基本的输入校验到复杂的状态管理,还包括了针对不同状态的动态样式应用,以及对原生表单行为的兼容。通过学习AngularJS的表单基础,开发者能够创建出更加健壮、易于维护的Web应用...
**应用场景**:任何需要用户输入的场景,如文本框、复选框等。 **使用示例**: ```html <span>you input password is {{ password }} ``` **扩展功能**:通过使用过滤器,可以轻松地格式化输出: ```html ...
第10章创建为全球用户服务的AngularJS应用273 101使用本地化的符号和设置274 配置本地化设置模块274 使用已有的本地化设置275 本地化设置和AngularJS过滤器275 102处理翻译277 翻译AngularJS模板中的字符串277...
在AngularJS中,表单验证是一项重要功能,它有助于保证用户输入数据的正确性和完整性。本文将结合实例详细介绍AngularJS在表单验证方面的功能和技巧。 首先,AngularJS提供了多种内置指令来实现表单验证,如`...