AngularJS的表单使用详解


Posted in Javascript onJune 17, 2015

 AngularJS提供丰富填写表单和验证。我们可以用ng-click来处理AngularJS点击按钮事件,然后使用 $dirty 和 $invalid标志做验证的方式。使用novalidate表单声明禁止任何浏览器特定的验证。表单控件使用了大量的角活动。让我们快速浏览一下有关事件先。
事件

AngularJS提供可与HTML控件相关联的多个事件。例如ng-click通常与按钮相关联。以下是AngularJS支持的事件。

  •     ng-click
  •     ng-dbl-click
  •     ng-mousedown
  •     ng-mouseup
  •     ng-mouseenter
  •     ng-mouseleave
  •     ng-mousemove
  •     ng-mouseover
  •     ng-keydown
  •     ng-keyup
  •     ng-keypress
  •     ng-change

ng-click

使用点击一个按钮的指令,表单重置数据。

<input name="firstname" type="text" ng-model="firstName" required>
<input name="lastname" type="text" ng-model="lastName" required>
<input name="email" type="email" ng-model="email" required>
<button ng-click="reset()">Reset</button>
<script>
  function studentController($scope) { 
   $scope.reset = function(){
     $scope.firstName = "Mahesh";
     $scope.lastName = "Parashar";
     $scope.email = "MaheshParashar@yiibai.com";
 }  
  $scope.reset();
}
</script>

验证数据

可使用下面跟踪误差。

  •     $dirty - 规定值已被改变。
  •     $invalid- 该值的状态是无效的。
  •     $error- 指出确切的错误。

例子

下面的例子将展示上述所有指令。
testAngularJS.html

<html>
<head>
<title>Angular JS Forms</title>
<style>
table, th , td {
 border: 1px solid grey;
 border-collapse: collapse;
 padding: 5px;
}
table tr:nth-child(odd) {
 background-color: #f2f2f2;
}
table tr:nth-child(even) {
 background-color: #ffffff;
}
</style>
</head>
<body>
<h2>AngularJS Sample Application</h2>
<div ng-app="" ng-controller="studentController">
<form name="studentForm" novalidate>
<table border="0">
<tr><td>Enter first name:</td><td><input name="firstname" type="text" ng-model="firstName" required>
  <span style="color:red" ng-show="studentForm.firstname.$dirty && studentForm.firstname.$invalid">
   <span ng-show="studentForm.firstname.$error.required">First Name is required.</span>
  </span>
</td></tr>
<tr><td>Enter last name: </td><td><input name="lastname" type="text" ng-model="lastName" required>
  <span style="color:red" ng-show="studentForm.lastname.$dirty && studentForm.lastname.$invalid">
   <span ng-show="studentForm.lastname.$error.required">Last Name is required.</span>
  </span>
</td></tr>
<tr><td>Email: </td><td><input name="email" type="email" ng-model="email" length="100" required>
<span style="color:red" ng-show="studentForm.email.$dirty && studentForm.email.$invalid">
   <span ng-show="studentForm.email.$error.required">Email is required.</span>
  <span ng-show="studentForm.email.$error.email">Invalid email address.</span>
  </span>
</td></tr>
<tr><td><button ng-click="reset()">Reset</button></td><td><button 
 ng-disabled="studentForm.firstname.$dirty && studentForm.firstname.$invalid ||
   studentForm.lastname.$dirty && studentForm.lastname.$invalid ||
   studentForm.email.$dirty && studentForm.email.$invalid"
 ng-click="submit()">Submit</button></td></tr>
</table>
</form>
</div>
<script>
function studentController($scope) { 
  $scope.reset = function(){
 $scope.firstName = "Mahesh";
 $scope.lastName = "Parashar";
 $scope.email = "MaheshParashar@yiibai.com";
  }  
  $scope.reset();
}
</script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
</body>
</html>

输出

在Web浏览器打开textAngularJS.html。看到结果如下。

AngularJS的表单使用详解

Javascript 相关文章推荐
Ext 今日学习总结
Sep 19 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
js实现文字滚动效果
Mar 03 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
jQuery常用选择器详解
Jul 17 jQuery
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
9种方法优化jQuery代码详解
Feb 04 jQuery
vue 公共列表选择组件,引用Vant-UI的样式方式
Nov 02 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
使用 JavaScript 制作页面效果
Apr 21 Javascript
js 数组 fill() 填充方法
Nov 02 Javascript
举例讲解AngularJS中的模块
Jun 17 #Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 #Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 #Javascript
JavaScript AOP编程实例
Jun 16 #Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 #Javascript
动态加载jQuery的方法
Jun 16 #Javascript
详解AngularJS中的表格使用
Jun 16 #Javascript
You might like
给初学PHP的5个入手程序
2006/11/23 PHP
精通php的十大要点(上)
2009/02/04 PHP
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
PHP四大安全策略
2014/03/12 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
Python中设置变量访问权限的方法
2015/04/27 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
python实现kMeans算法
2017/12/21 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Python3.5运算符操作实例详解
2019/04/25 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
英国计算机商店:Technextday
2019/12/28 全球购物
小学校本培训方案
2014/06/06 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
校长新学期致辞
2015/07/30 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android