源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-01-24 19:01 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Angular.js实现注册系统的实例详解
[b]前言[/b] 相信大家在做项目里经常需要登录注册,那么在用angularjs该如何实现。下面让我们通过angualr.js来实现注册系统表单验证。 Angular下载地址:https://code.angularjs.org/1.5.0/angular.js [b]首先看一下页面效果(通过bootstrap实现的布局样式):[/b] [img]http://files.jb51.net/file_images/article/201612/20161218113535505.png?20161118113549[/img]   当我们点击提交按钮时,会根据表单验证,若通过,则没有提示语句,若不通过,则会弹出响应提示语句,当然该功能可以通过其他简单方式实现,这里只是通过实战对angular进一步深入理解。 [b]实现方法如下:[/b] [b]页面布局代码如下:[/b]
<!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),本文后面会介绍其用法。 [b]js代码:[/b]
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 })
[b]注意:[/b] 可以[code]console.log($scope);[/code]找到[code]$invalid[/code] , [code]$dirty[/code] ,[code] $valid[/code] , [code]$pristine[/code](意思:不合法,被修改,合法,没被修改) 打开控制台,找到[code]console.log($scope);[/code]打印的内容,找到表单name字段,即可找到以上四个属性,同样找到表单内输入框中的name字段也可找到以上四个属性。 在此之前,我们要为表单添加name字段,比如我设置为 [code]name="myForm" [/code], 所以即可找 myForm 即可,input同样 [img]http://files.jb51.net/file_images/article/201612/20161218113702906.png?2016111811379[/img]    [img]http://files.jb51.net/file_images/article/201612/20161218113727840.png?20161118113843[/img] 下面是提示语部分,单独拿出来说一下:
<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>
[code]style="height:30px;overflow:hidden;"> [/code],设置只是显示一行; [code]ng-show="myForm.username.$invalid && myForm.username.$dirty" [/code],默认状态下我们没有提交当然合法,而且也没有修改;又由于[code]$scope.showAllErr = false;[/code] 所以什么提示语也不现实,但是当这些条件一旦满足,[code]myForm.username.$invalid=true  &&  myForm.username.$dirty=true,[/code]便会显示以上提示语中对应内容,至于 显示那一条,根据对应的字段显示,若是username,那就是“请填写用户名”,email字段,那就……(字段即 name="XXX",自己为不同的输入框定义不同字段即可,当然了 上面提到过他们也有:[code]$invalid[/code] , [code]$dirty[/code] , [code]$valid[/code] , [code]$pristine[/code] 这四个属性) 若是什么也不填写,那就是表单不合法,即 [code]$scope.myForm.$invalid=true[/code],提示 “请填写”。 [b]再说说ng-disabled;ng-readonly:[/b] 将上述代码加入下面内容:
 <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;
 }
便可以通过点击按钮实现输入框只读与可写、可用不可用之间的切换 [img]http://files.jb51.net/file_images/article/201612/20161218114005970.png?20161118114014[/img]   补充两个事件:[code]ng-change[/code];[code]ng-submit[/code] [code]ng-change[/code]:用来检测用户输入是否发生变化 [code]ng-submit[/code]:用来检测表单提交事件,只可用于form元素(意只对表单本身有效) [b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部