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 相关文章推荐
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
Sep 13 Javascript
javascript模拟select,jselect的方法实现
Nov 08 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
JS中的Replace方法使用经验分享
May 20 Javascript
JavaScript的instanceof运算符学习教程
Jun 08 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
Sep 25 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
JS实现简易图片自动轮播
Oct 16 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
Oct 24 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
php下实现农历日历的代码
2007/03/07 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
JS中数据结构之栈
2019/01/01 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
深入理解javascript中的this
2021/02/08 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
centos系统升级python 2.7.3
2014/07/03 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
校园餐饮创业计划书
2014/01/10 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
普通员工辞职信
2014/01/17 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
2014年加油站工作总结
2014/12/04 职场文书