AngularJS表单详解及示例代码


Posted in Javascript onAugust 17, 2016

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表单详解及示例代码

以上就是AngularJS表单的知识整理,后续继续补充相关知识,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript 滚轮事件使用说明
Mar 07 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
Nov 21 Javascript
node.js实现爬虫教程
Aug 25 Javascript
jQuery ajax动态生成table功能示例
Jun 14 jQuery
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
Oct 02 Javascript
vue 源码解析之虚拟Dom-render
Aug 26 Javascript
解决在Vue中使用axios用form表单出现的问题
Oct 30 Javascript
vue-router 中 meta的用法详解
Nov 01 Javascript
JS实现放烟花效果
Mar 10 Javascript
Element InputNumber 计数器的实现示例
Aug 03 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
Oct 09 Javascript
AngularJS模块详解及示例代码
Aug 17 #Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 #Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 #Javascript
AngularJS表格详解及示例代码
Aug 17 #Javascript
AngularJS过滤器详解及示例代码
Aug 16 #Javascript
AngularJS控制器详解及示例代码
Aug 16 #Javascript
AngularJS表达式讲解及示例代码
Aug 16 #Javascript
You might like
PHP脚本的10个技巧(2)
2006/10/09 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
解决php写入数据库乱码的问题
2019/09/17 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
Python isinstance函数介绍
2015/04/14 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
python装饰器原理与用法深入详解
2019/12/19 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
String是最基本的数据类型吗?
2013/06/13 面试题
出生证明公证书
2014/04/09 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers