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 相关文章推荐
showModalDialog 和 showModelessDialog
Jan 22 Javascript
基于jquery的图片的切换(以数字的形式)
Feb 14 Javascript
Javascript实现滚动图片新闻的实例代码
Nov 27 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
jquery ajax 如何向jsp提交表单数据
Aug 23 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
解决vue axios的封装 请求状态的错误提示问题
Sep 25 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
Nov 20 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
JS实现公告上线滚动效果
Jan 10 Javascript
一文搞懂redux在react中的初步用法
Jun 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
我的论坛源代码(二)
2006/10/09 PHP
PHP 5.0 Pear安装方法
2006/12/06 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
PHP7 windows支持
2021/03/09 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
汽车服务工程专业自荐信
2014/09/02 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
党建工作汇报材料
2014/12/24 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS