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示例)

