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 EasyUI API 中文文档 - Documentation 文档
Sep 29 Javascript
div模拟滚动条效果示例代码
Oct 16 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
Jun 05 Javascript
jQuery实现进度条效果代码
Dec 17 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
ReactNative之FlatList的具体使用方法
Nov 29 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
实例讲解JavaScript 计时事件
Jul 04 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
图书管理程序(一)
2006/10/09 PHP
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
2006/12/06 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
Python2与Python3的区别实例总结
2019/04/17 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python 随机按键模拟2小时
2020/12/30 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
带薪年假请假条
2014/02/04 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
绿色学校实施方案
2014/03/31 职场文书
青春无悔演讲稿
2014/05/08 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android