Angular.js实现注册系统的实例详解

发布时间 - 2026-01-10 21:54:38    点击率:

前言

相信大家在做项目里经常需要登录注册,那么在用angularjs该如何实现。下面让我们通过angualr.js来实现注册系统表单验证。

Angular下载地址:https://code.angularjs.org/1.5.0/angular.js

首先看一下页面效果(通过bootstrap实现的布局样式):

 

当我们点击提交按钮时,会根据表单验证,若通过,则没有提示语句,若不通过,则会弹出响应提示语句,当然该功能可以通过其他简单方式实现,这里只是通过实战对angular进一步深入理解。

实现方法如下:

页面布局代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">    //设置按照edge浏览器渲染方式渲染
 <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> //设置页面宽度,缩放比例,用户不能缩放
 <title>注册</title>
 <link rel="stylesheet" href="bootstrap.min.css">
 <style>
  input {
   outline: none; //去掉chrome浏览器输入框内的蓝色边框
  }
 </style>
</head>
<body ng-app="myApp">
 <div ng-controller="myCtr">
  <div class="container">
   <h2 class="text-center">注册系统</h2>
   <div class="row">
    <form name="myForm" class="form-horizontal">
     <div class="form-group">
      <div class="col-xs-3 col-xs-offset-1">
       <lable for="username">用户名:</lable>
      </div>
      <div class="col-xs-8">
       <input id="username" type="text" ng-model="data.username" name="username" ng-required="true"> //ng-required="true"是设置输入框内必须填写内容,下同
      </div>
     </div>
     <div class="form-group">
      <div class="col-xs-3 col-xs-offset-1">
       <lable for="tel">电话:</lable>
      </div>
      <div class="col-xs-8">
       <input id="tel" type="text" ng-model="data.tel" name="tel" ng-pattern="/^1\d{10}$/" ng-required="true"> //ng-pattren="/XXX/"是设置正则验证,下同
       
      </div>
     </div>
     <div class="form-group">
      <div class="col-xs-3 col-xs-offset-1">
       <lable for="address">地址:</lable>
      </div>
      <div class="col-xs-8">
       <input id="address" type="text" ng-model="data.address" name="address" ng-required="true">
      
      </div>
     </div>
     <div class="form-group">
      <div class="col-xs-3 col-xs-offset-1">
       <lable for="email">邮箱:</lable>
      </div>
      <div class="col-xs-8">
       <input id="email" type="text" ng-model="data.email" name="email" ng-pattern="/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/" ng-required="true">
      </div>
     </div>
     <div class="col-xs-8 col-xs-offset-4 text-danger" style="height:30px;overflow:hidden;">
      <p ng-show="myForm.username.$invalid && myForm.username.$dirty">请填写用户名</p>
      <p ng-show="myForm.tel.$invalid && myForm.tel.$dirty">请填写正确电话</p>
      <p ng-show="myForm.address.$invalid && myForm.address.$dirty">请填写地址</p>
      <p ng-show="myForm.email.$invalid && myForm.email.$dirty">请填写正确邮箱</p>
      <p ng-show="showAllErr">请填写</p>
     </div>
     <div class="form-group">
      <div class="col-xs-12">
       <input class="btn btn-success" type="submit" style="width:100%" ng-click="check()">
      </div>
     </div>
    </form>
   </div>
  </div>
  
 </div>
<script src="angular.min.js"></script>
</body>
</html>

如上页面布局代码,记得引入bootstrap.css;angular.js,ng-required;ng-pattern 功能等同于H5新属性:required; pattern, 另外还有disabled;readonly(ng-disbaled;ng-readonly),本文后面会介绍其用法。

js代码:

var app = angular.module("myApp", []);
 app.controller("myCtr", function($scope) {
  $scope.data = {};      //存放用户输入的内容,便于后台调用
  $scope.showAllErr = false; //默认不显示提示信息
  $scope.check = function(){
   $scope.showAllErr= $scope.myForm.$invalid; //当内容不合法时,显示内容(此时$invalid=true),可以console.log($scope);找到$invalid,$dirty,$valid,$pristine
   if($scope.myForm.$valid){
    console.log($scope.data); //控制台打印用户输入的内容
   } 
  }11 })

注意:

可以console.log($scope);找到$invalid , $dirty , $valid , $pristine(意思:不合法,被修改,合法,没被修改)

打开控制台,找到console.log($scope);打印的内容,找到表单name字段,即可找到以上四个属性,同样找到表单内输入框中的name字段也可找到以上四个属性。

在此之前,我们要为表单添加name字段,比如我设置为 name="myForm" , 所以即可找 myForm 即可,input同样

 

 

下面是提示语部分,单独拿出来说一下:

<div class="col-xs-8 col-xs-offset-4 text-danger" style="height:30px;overflow:hidden;">
     <p ng-show="myForm.username.$invalid && myForm.username.$dirty">请填写用户名</p>
     <p ng-show="myForm.tel.$invalid && myForm.tel.$dirty">请填写正确电话</p>
     <p ng-show="myForm.address.$invalid && myForm.address.$dirty">请填写地址</p>
     <p ng-show="myForm.email.$invalid && myForm.email.$dirty">请填写正确邮箱</p>
     <p ng-show="showAllErr">请填写</p>
</div>

style="height:30px;overflow:hidden;"> ,设置只是显示一行;

ng-show="myForm.username.$invalid && myForm.username.$dirty" ,默认状态下我们没有提交当然合法,而且也没有修改;又由于$scope.showAllErr = false;

所以什么提示语也不现实,但是当这些条件一旦满足,myForm.username.$invalid=true  &&  myForm.username.$dirty=true,便会显示以上提示语中对应内容,至于

显示那一条,根据对应的字段显示,若是username,那就是“请填写用户名”,email字段,那就……(字段即 name="XXX",自己为不同的输入框定义不同字段即可,当然了

上面提到过他们也有:$invalid , $dirty , $valid , $pristine 这四个属性)

若是什么也不填写,那就是表单不合法,即 $scope.myForm.$invalid=true,提示 “请填写”。

再说说ng-disabled;ng-readonly:

将上述代码加入下面内容:

 <div class="col-xs-8">
 <input id="address" type="text" ng-model="data.address" name="address" ng-required="true" ng-disabled="isDis">
 <button ng-click="myTogTwo()">toggTwo</button>
 </div>
 <div class="col-xs-8">
  <input id="tel" type="text" ng-model="data.tel" name="tel" ng-pattern="/^1\d{10}$/" ng-required="true" ng-readonly="isWr">
  <button ng-click="myTogOne()">toggOne</button>
 </div>
$scope.isDis = false;
  $scope.isWr = false;
  $scope.myTogOne = function(){
   $scope.isWr = !$scope.isWr;
  }
  $scope.myTogTwo = function(){
   $scope.isDis = !$scope.isDis;
 }

便可以通过点击按钮实现输入框只读与可写、可用不可用之间的切换

 

补充两个事件:ng-change;ng-submit

ng-change:用来检测用户输入是否发生变化

ng-submit:用来检测表单提交事件,只可用于form元素(意只对表单本身有效)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# angularjs实现注册  # angular  # 后台管理系统  # 用户注册系统的实现  # AngularJS中实现用户访问的身份认证和表单验证功能  # 3个可以改善用户体验的AngularJS指令介绍  # AngularJS用户选择器指令实例分析  # AngularJS自定义插件实现网站用户引导功能示例  # AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器  # 路由增加限制)  # Angular.js与Bootstrap相结合实现表格分页代码  # 总结十个Angular.js由浅入深的面试问题  # 浅谈angular.js中实现双向绑定的方法$watch $digest $apply  # Angular.js如何从PHP读取后台数据  # Angular.js回顾ng-app和ng-model使用技巧  # 请填写  # 表单  # 输入框  # 也不  # 不合法  # 那就是  # 也有  # 那就  # 让我们  # 在此  # 下载地址  # 也可  # 提示信息  # 可以通过  # 便可  # 弹出  # 该如何  # 便会  # 当我们  # 这篇文章 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  简单实现Android文件上传  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Laravel distinct去重查询_Laravel Eloquent去重方法  Android利用动画实现背景逐渐变暗  html如何与html链接_实现多个HTML页面互相链接【互相】  如何利用DOS批处理实现定时关机操作详解  如何在Windows 2008云服务器安全搭建网站?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何用好域名打造高点击率的自主建站?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  微信小程序 wx.uploadFile无法上传解决办法  企业网站制作这些问题要关注  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何快速搭建高效简练网站?  如何在橙子建站上传落地页?操作指南详解  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  使用C语言编写圣诞表白程序  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Laravel怎么在Controller之外的地方验证数据  Android自定义控件实现温度旋转按钮效果  如何在阿里云ECS服务器部署织梦CMS网站?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  教学论文网站制作软件有哪些,写论文用什么软件 ?  利用vue写todolist单页应用  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  怎么用AI帮你为初创公司进行市场定位分析?  利用JavaScript实现拖拽改变元素大小  如何用已有域名快速搭建网站?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何在宝塔面板创建新站点?  无锡营销型网站制作公司,无锡网选车牌流程?  Laravel如何升级到最新版本?(升级指南和步骤)  详解jQuery中基本的动画方法  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  如何快速搭建高效可靠的建站解决方案?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Angular 表单中正确绑定输入值以确保提交与验证正常工作  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)