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 相关文章推荐
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
Mar 01 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
ie8本地图片上传预览示例代码
Jan 12 Javascript
jquery中获得元素尺寸和坐标的方法整理
May 18 Javascript
JS实现控制文本框的内容
Jul 10 Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
jQuery无缝轮播图代码
Dec 22 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
May 09 Javascript
javascript代码简写的几种常用方式汇总
Aug 23 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP编码转换
2012/11/05 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
实例讲解php实现多线程
2019/01/27 PHP
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
收集前端面试题之url、href、src
2018/03/22 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
Python编程实现的简单Web服务器示例
2017/06/22 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
python多线程使用方法实例详解
2019/12/30 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
C++面试题目
2013/06/25 面试题
.NET remoting的两种通道是什么
2016/05/31 面试题
酒店司机岗位职责
2013/12/14 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
导师评语大全
2014/04/26 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
离职信范文
2015/06/23 职场文书
小学语文教师研修日志
2015/11/13 职场文书