首页 web前端 js教程 关于AngularJS验证表单功能的实现代码分析

关于AngularJS验证表单功能的实现代码分析

May 26, 2017 am 10:19 AM
angularjs 表单验证

这篇文章主要介绍了AngularJS表单验证功能,结合具体实例形式分析了AngularJS表单验证的操作步骤、实现技巧与相关注意事项,需要的朋友可以参考下

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

在AngularJS的管辖下,每个表单form都会创建一个ngFormController的一个实例。在表单里面的每个input都会创建一个在这个实例下的ngModelController实例,用以控制每个input的行为。

首先先从简单的验证开始。

AngularJs的ngModelController提供了几种属性:$pristine;$dirty;$valid;$invalid;$error

pristine:表单并没有改变。
dirty:表单改变了。
valid:全部控件符合验证规则。
invalid:至少有一个控件不符合验证规则。
error:有错,但是不知道什么错。

创建一个表单如下:

<form name="userForm" method="#" action="#">
  <label for="name">用户名1</label>
  <input id="name" name="name" type="text" ng-model="users.name" pattern="^\w{6,18}$" required>
  <span ng-show="userForm.name.$error.pattern">用户名必须XXXX</span>
</form>
登录后复制

首先每个form都要有自己的name。通过这个name来对自己下面的input进行控制。而后,每个input标签都要有自己的name。name是很关键的一步,被用于识别每个不同的input,从而识别不同的ngModelController。使用pattern来设置自己的正则表达式规则。使用$error来检测这个正则表达式是否正确。并把它赋予给ng-show指令。如果有错,整个$error 就会返回true,显示设置好的提示信息,一直到正则表达式通过,$error返回false,ng-show 对其进行隐藏。

以上的简单例子是没有自己去重新设置控制器的行为,一切都是AngularJs默认的。可以看到ng-show里面的判断代码其实是可以交给后面的JS完成的,这样可以看到ngModelController的具体过程。

<!--html-->
<form name="userForm" ng-controller="main" method="#" action="#">
  <label for="name">用户名1</label>
  <input id="name" name="name" type="text" ng-model="users.name" pattern="^\w{6,18}$" required>
  <span style="color:red" ng-show="showError(userForm.name,&#39;pattern&#39;)">用户名必须XX</span>
  <span style="color:green" ng-show="showSuccess(userForm.name)">成功!</span>
  <!--对按钮进行动态锁定-->
  <button class="btn btn-primary btn-lg" ng-disabled="submit(userForm)">SAVE</button>
</form>
登录后复制
/*JS*/
app.controller("main",function($scope){
  $scope.showError=function(ngModelController,abc){
    return ngModelController.$error[abc];
  };
  $scope.showSuccess=function(ngModelController){
    return ngModelController.$valid; /*至少有1错误,返回false,无错误,返回true*/
  };
   $scope.submit=function(ngFormController){
    return ngFormController.$invalid; /*valid的取反*/
  };
});
登录后复制

这里直接在控制器里面的ngModelController里进行判断。里面有一个坑,就是判断$valid 等等这类属性是没有带参数的。而判断$error 则需要表明“判断什么”,我传了自己的一个正则表达式给他。

AngularJs还可以对表单的提交按钮进行“锁定”。但要注意的是,此时BUTTON对应的Controller不再是针对某一个input的ngModelController,而是针对整个form的ngFormController了,因此,里面的$invalid 是判断所有的input有没有问题,全部都没问题的时候才会解锁。

思考:正则表达式或者minlength类似这种限制,能否写在JS文件里面。

以上是关于AngularJS验证表单功能的实现代码分析的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

php如何使用CodeIgniter4框架? php如何使用CodeIgniter4框架? May 31, 2023 pm 02:51 PM

PHP是一种非常流行的编程语言,而CodeIgniter4是一种常用的PHP框架。在开发Web应用程序时,使用框架是非常有帮助的,它可以加速开发过程、提高代码质量、降低维护成本。本文将介绍如何使用CodeIgniter4框架。安装CodeIgniter4框架CodeIgniter4框架可以从官方网站(https://codeigniter.com/)下载。下

如何使用Flask-WTF实现表单验证 如何使用Flask-WTF实现表单验证 Aug 03, 2023 pm 06:53 PM

如何使用Flask-WTF实现表单验证Flask-WTF是一个用于处理Web表单验证的Flask扩展,它提供了一种简洁、灵活的方式来验证用户提交的数据。本文将向您展示如何使用Flask-WTF扩展来实现表单验证。安装Flask-WTF要使用Flask-WTF,首先需要安装它。可以使用pip命令来安装:pipinstallFlask-WTF导入所需模块在F

Laravel开发:如何使用Laravel Validation验证表单请求? Laravel开发:如何使用Laravel Validation验证表单请求? Jun 13, 2023 pm 01:34 PM

Laravel是一个流行的PHPWeb开发框架,它提供了很多方便的功能来加快开发者的工作。其中,LaravelValidation是一种非常实用的功能,它可以帮助我们轻松地验证表单请求和用户输入的数据。本文就将介绍如何使用LaravelValidation验证表单请求。什么是LaravelValidationLaravelValidation是La

如何使用Golang实现Web应用程序的表单验证 如何使用Golang实现Web应用程序的表单验证 Jun 24, 2023 am 09:08 AM

表单验证是Web应用程序开发中非常重要的一个环节,它能够在提交表单数据之前对数据进行有效性检查,避免应用程序出现安全漏洞和数据错误。使用Golang可以轻松地实现Web应用程序的表单验证,本文将介绍如何使用Golang来实现Web应用程序的表单验证。一、表单验证的基本要素在介绍如何实现表单验证之前,我们需要知道表单验证的基本要素是什么。表单元素:表单元素是指

如何在Laravel中使用中间件处理表单验证 如何在Laravel中使用中间件处理表单验证 Nov 02, 2023 pm 03:57 PM

如何在Laravel中使用中间件处理表单验证,需要具体代码示例引言:在Laravel中,表单验证是非常常见的任务。为了确保用户输入的数据的有效性和安全性,我们通常会对表单提交的数据进行验证。Laravel提供了一个方便的表单验证功能,同时也支持使用中间件来处理表单验证。本文将详细介绍如何在Laravel中使用中间件处理表单验证,并提供具体的代码示例

PHP中的表单验证和过滤方法? PHP中的表单验证和过滤方法? Jun 29, 2023 pm 10:04 PM

PHP作为一种广泛应用于Web开发的脚本语言,其表单验证和过滤是非常重要的一部分。在用户提交表单的过程中,需要对用户输入的数据进行验证和过滤,以确保数据的安全性和有效性。本文将介绍PHP中如何进行表单验证和过滤的方法和技巧。一、表单验证表单验证是指对用户输入的数据进行检查,以确保数据符合特定的规则和要求。常见的表单验证包括对必填项的验证、邮箱格式、手机号码格

PHP表单验证技巧:如何使用filter_input函数检验用户输入 PHP表单验证技巧:如何使用filter_input函数检验用户输入 Aug 01, 2023 am 08:51 AM

PHP表单验证技巧:如何使用filter_input函数检验用户输入引言:在开发Web应用程序时,表单是与用户进行交互的重要工具。而正确地验证用户输入,是保证数据的完整性和安全性的关键步骤之一。PHP提供了filter_input函数,可以方便地对用户输入进行验证和过滤。本文将介绍如何使用filter_input函数来检验用户输入,并提供相关的代码示例。一、

2022年最新5款的angularjs教程从入门到精通 2022年最新5款的angularjs教程从入门到精通 Jun 15, 2017 pm 05:50 PM

Javascript 是一个非常有个性的语言. 无论是从代码的组织, 还是代码的编程范式, 还是面向对象理论都独具一格. 而很早就在争论的Javascript 是不是面向对象语言这个问题, 显然已有答案. 但是, 即使 Javascript 叱咤风云二十年, 如果想要看懂 jQuery, Angularjs, 甚至是 React 等流行框架, 观看《黑马云课堂JavaScript 高级框架设计视频教程》就对了。

See all articles