前言
相信大家在做项目里经常需要登录注册,那么在用angularjs该如何实现。下面让我们通过angualr.js来实现注册系统表单验证。
Angular下载地址:https://code.angularjs.org/1.5.0/angular.js
首先看一下页面效果(通过bootstrap实现的布局样式):
当我们点击提交按钮时,会根据表单验证,若通过,则没有提示语句,若不通过,则会弹出响应提示语句,当然该功能可以通过其他简单方式实现,这里只是通过实战对angular进一步深入理解。
实现方法如下:
页面布局代码如下:
//设置按照edge浏览器渲染方式渲染 //设置页面宽度,缩放比例,用户不能缩放注册 注册系统
如上页面布局代码,记得引入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同样
下面是提示语部分,单独拿出来说一下:
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:
将上述代码加入下面内容:
$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元素(意只对表单本身有效)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。