AngularJS入门教程之表单校验用法示例


Posted in Javascript onNovember 02, 2016

本文实例讲述了AngularJS表单校验用法。分享给大家供大家参考,具体如下:

表单数据的校验对于提高WEB安全性意义不大,因为服务器接收到的请求不一定来自我们的前端页面,有可能来自别的站点,黑客可以自己做一个表单,把数据提交到我们的服务器(即跨站伪造请求),这样就绕过了前端页面的校验。如果对HTTP协议比较熟,甚至还可以在程序中手动构造一段HTTP请求发到服务器,所以服务器端的数据校验绝对是必不可少的。

WEB前端数据校验的意义在于改善用户体验,用户不用等到?⑹?萏峤坏椒?衿骱蟛胖?滥男┦?菔遣缓戏ǖ摹?/p>

使用AngularJS对表单元素进行校验是相当方便的,我们来看一下可以在input元素上使用的所有校验选项。

1.必填项

验证某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可:

<input type="text" required />

2. 最小长度

验证表单输入的文本长度是否大于某个最小值,在输入字段上使用AngularJS指令ng-minleng= "{number}":

<input type="text" ng-minlength="5" />

3. 最大长度

验证表单输入的文本长度是否小于或等于某个最大值,在输入字段上使用AngularJS指令ng-maxlength="{number}":

<input type="text" ng-maxlength="20" />

4. 模式匹配

使用ng-pattern="/PATTERN/"来确保输入能够匹配指定的正则表达式:

<input type="text" ng-pattern="[a-zA-Z]" />

5. 电子邮件

验证输入内容是否是电子邮件,只要像下面这样将input的类型设置为email即可:

<input type="email" name="email" ng-model="user.email" />

6. 数字

验证输入内容是否是数字,将input的类型设置为number:

<input type="number" name="age" ng-model="user.age" />

7. URL

验证输入内容是否是URL,将input的类型设置为 url:

<input type="url" name="homepage" ng-model="user.facebook_url" />

我们看一下具体的一个案例代码:

<!DOCTYPE html>
<html ng-app="loginMod">
<head lang="en">
  <meta charset="UTF-8">
  <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
  <script type="text/javascript" src="angular-1.3.0.14/angular-messages.js"></script>
  <title>tutorial06_1</title>
  <style>
    input.ng-invalid {
      border: 1px solid red;
    }
    input.ng-valid {
      border: 1px solid green;
    }
  </style>
</head>
<body>
<div>
  <form name="loginForm" novalidate ng-submit="login()" ng-controller="LoginController">
    <div style="width:280px;float:left">
      <label>用户名:</label>
      <input type="text" placeholder="请输入用户名" name="uname" ng-model="uname" ng-minlength=
          3 ng-maxlength=10 required />
    </div>
    <div class="error" ng-messages="loginForm.uname.$error" style="color:red;">
      <div ng-message="required">用户名不能为空</div>
      <div ng-message="minlength">用户名长度至少为3</div>
      <div ng-message="maxlength">用户名长度不能超过10</div>
    </div>
    <br/><br/>
    <button type="submit">提交</button>
  </form>
</div>
<script>
  var loginMod = angular.module('loginMod', ['ngMessages']);
  loginMod.controller("LoginController",function($scope,$log){
    $scope.login = function()
    {
      $log.info("点击了按钮");
    }
  });
</script>
</body>
</html>

表单校验作为AngularJs的一个ngMessages模块封装在angular-messages.js文件中,我们必须引入它:

<script type="text/javascript" src="angular-1.3.0.14/angular-messages.js">

除此之外还要告诉AngularJs??gMessages作为应用程序的依赖模块引入,像下面这个样子:

var loginMod = angular.module('loginMod', ['ngMessages']);

required指定文本框为必输项,ng-minlength指定最小长度,ng-maxlength指定最大长度,校验工作是AngularJs内部完成的,我们只需要定义不满足条件时的提示信息:

<div class="error" ng-messages="loginForm.uname.$error" style="color:red;">
  <div ng-message="required">用户名不能为空</div>
  <div ng-message="minlength">用户名长度至少为3</div>
  <div ng-message="maxlength">用户名长度不能超过10</div>
</div>

最后我们在浏览器中看一下效果:

AngularJS入门教程之表单校验用法示例

我们还可以把提示信息写在一个单独的errors.html文件中:

<div ng-message="required">用户名不能为空</div>
<div ng-message="minlength">用户名长度至少为3</div>
<div ng-message="maxlength">用户名长度不能超过10</div>

然后在页面中使用ng-messages-include属性引入这些信息:

<div class="error" ng-messages="loginForm.uname.$error"
   style="color:red;" ng-messages-include="errors/errors.html">
</div>

AngularJS源码可点击此处本站下载

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 Javascript
JQuery选择器特辑 详细小结
May 14 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
Dec 17 Javascript
JS中判断null、undefined与NaN的方法
Mar 26 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
Oct 19 Javascript
JS实现仿百度文库评分功能
Jan 12 Javascript
小程序实现横向滑动日历效果
Oct 21 Javascript
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
Vue移动端实现图片上传及超过1M压缩上传
Dec 23 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
JQuery Ajax WebService传递参数的简单实例
Nov 02 #Javascript
ASP.NET jquery ajax传递参数的实例
Nov 02 #Javascript
Javascript 正则表达式校验数字的简单实例
Nov 02 #Javascript
在JSP中如何实现MD5加密的方法
Nov 02 #Javascript
AngularJS入门教程之过滤器用法示例
Nov 02 #Javascript
JavaScript基础——使用Canvas绘图
Nov 02 #Javascript
js实现砖头在页面拖拉效果
Nov 20 #Javascript
You might like
PHP4中实现动态代理
2006/10/09 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
基于jquery的页面划词搜索JS
2010/09/14 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
python解决字典中的值是列表问题的方法
2013/03/04 Python
python检测是文件还是目录的方法
2015/07/03 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
python构建自定义回调函数详解
2017/06/20 Python
单链表反转python实现代码示例
2018/02/08 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
wxPython的安装与使用教程
2018/08/31 Python
python八皇后问题的解决方法
2018/09/27 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
城市规划毕业生求职信
2013/10/10 职场文书
文明学生事迹材料
2014/01/29 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
社区班子对照检查材料
2014/08/27 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
2022年显卡天梯图(6月更新)
2022/06/17 数码科技