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 相关文章推荐
Prototype Date对象 学习
Jul 12 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
Jul 10 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
JS实现的自动打字效果示例
Mar 10 Javascript
Angular 数据请求的实现方法
May 07 Javascript
jquery实现动态改变css样式的方法分析
May 27 jQuery
解决vue-loader加载不上的问题
Oct 21 Javascript
JS前端使用canvas实现物体的点选示例
Aug 05 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 $_ENV为空的原因分析
2009/06/01 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
jQuery live
2009/05/15 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
node.js的Express服务器基本使用教程
2019/01/09 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Vue实现多页签组件
2021/01/14 Vue.js
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
如何在C# winform中异步调用web services
2015/09/21 面试题
教师专业理论水平的自我评价分享
2013/11/09 职场文书
应届生新闻编辑求职信
2013/11/19 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
周年庆促销方案
2014/03/15 职场文书
民事授权委托书范文
2014/08/02 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书