AngularJS入门教程之表单校验用法示例  更新时间:2016年11月02日 09:57:28   作者:Rongbo_J   这篇文章主要介绍了AngularJS表单校验用法,结合实例形式分析了AngularJS各种常见的表单校验功能及使用技巧,需要的朋友可以参考下 本文实例讲述了AngularJS表单校验用法。分享给大家供大家参考,具体如下: 表单数据的校验对于提高WEB安全性意义不大,因为服务器接收到的请求不一定来自我们的前端页面,有可能来自别的站点,黑客可以自己做一个表单,把数据提交到我们的服务器(即跨站伪造请求),这样就绕过了前端页面的校验。如果对HTTP协议比较熟,甚至还可以在程序中手动构造一段HTTP请求发到服务器,所以服务器端的数据校验绝对是必不可少的。 WEB前端数据校验的意义在于改善用户体验,用户不用等到將数据提交到服务器后才知道哪些数据是不合法的。 使用AngularJS对表单元素进行校验是相当方便的,我们来看一下可以在input元素上使用的所有校验选项。 1.必填项 验证某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: 2. 最小长度 验证表单输入的文本长度是否大于某个最小值,在输入字段上使用AngularJS指令ng-minleng= “{number}”: 3. 最大长度 验证表单输入的文本长度是否小于或等于某个最大值,在输入字段上使用AngularJS指令ng-maxlength=”{number}”: 4. 模式匹配 使用ng-pattern=”/PATTERN/”来确保输入能够匹配指定的正则表达式: 5. 电子邮件 验证输入内容是否是电子邮件,只要像下面这样将input的类型设置为email即可: 6. 数字 验证输入内容是否是数字,将input的类型设置为number: 7. URL 验证输入内容是否是URL,将input的类型设置为 url: 我们看一下具体的一个案例代码: tutorial06_1 用户名: 用户名不能为空 用户名长度至少为3 用户名长度不能超过10 提交 表单校验作为AngularJs的一个ngMessages模块封装在angular-messages.js文件中,我们必须引入它: 除此之外还要告诉AngularJs將ngMessages作为应用程序的依赖模块引入,像下面这个样子: var loginMod = angular.module(‘loginMod’, [‘ngMessages’]); required指定文本框为必输项,ng-minlength指定最小长度,ng-maxlength指定最大长度,校验工作是AngularJs内部完成的,我们只需要定义不满足条件时的提示信息: 用户名不能为空 用户名长度至少为3 用户名长度不能超过10 最后我们在浏览器中看一下效果: 我们还可以把提示信息写在一个单独的errors.html文件中: 用户名不能为空 用户名长度至少为3 用户名长度不能超过10 然后在页面中使用ng-messages-include属性引入这些信息: AngularJS源码可点击此处本站下载。 希望本文所述对大家AngularJS程序设计有所帮助。 您可能感兴趣的文章: 从表单校验看JavaScript策略模式的使用详解 Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验 JavaScript 完成注册页面表单校验的实例 使用JavaScript进行表单校验功能 Angularjs使用指令做表单校验的方法 AngularJs表单校验功能实例代码 Vue.js 表单校验插件 js实现表单校验功能 AngularJS 表单校验 相关文章 angularjs利用directive实现移动端自定义软键盘的示例 下面小编就为大家带来一篇angularJS利用directive实现移动端自定义软键盘的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2017-09-09 Angular2之二级路由详解 今天小编就为大家分享一篇Angular2之二级路由详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-08-08 angular组件间传值测试的方法详解 这篇文章主要给大家介绍了关于如何测试angular组件间传值的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用angular组件具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2020-05-05 AngulaJS路由 ui-router 传参实例 本篇文章主要介绍了AngulaJS路由 ui-router 传参实例 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2017-04-04 angular中的http拦截器Interceptors的实现 本篇文章主要介绍了angular中的http拦截器Interceptors的实现的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 2017-02-02 AngularJS 支付倒计时功能实现思路 这篇文章主要介绍了AngularJS 支付倒计时功能的实现思路,需要的朋友可以参考下 2017-06-06 angular inputNumber指令输入框只能输入数字的实现 这篇文章主要介绍了angular inputNumber指令输入框只能输入数字的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2019-12-12 AngularJS中的作用域实例分析 这篇文章主要介绍了AngularJS中的作用域,结合实例形式较为详细的分析了AngularJS涉及作用域的相关问题与注意事项,需要的朋友可以参考下 2018-05-05 AngularJS实现tab选项卡的方法详解 这篇文章主要介绍了AngularJS实现tab选项卡的方法,结合实例形式较为详细的分析了AngularJS实现tab选项卡的原理、实现技巧与相关注意事项,需要的朋友可以参考下 2017-07-07 Angular4.0中引入laydate.js日期插件的方法教程 在AngularJs中我们会不可避免的使用第三方库,例如jquery插件库。下面这篇文章主要给大家介绍了关于Angular4.0中引入laydate.js日期插件的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。 2017-12-12 最新评论

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

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

WEB前端数据校验的意义在于改善用户体验,用户不用等到將数据提交到服务器后才知道哪些数据是不合法的。

使用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將ngMessages作为应用程序的依赖模块引入,像下面这个样子:

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>

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

我们还可以把提示信息写在一个单独的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策略模式的使用详解
  • Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
  • JavaScript 完成注册页面表单校验的实例
  • 使用JavaScript进行表单校验功能
  • Angularjs使用指令做表单校验的方法
  • AngularJs表单校验功能实例代码
  • Vue.js 表单校验插件
  • js实现表单校验功能
张贴在3