Angular4表单验证代码详解


Posted in Javascript onSeptember 03, 2017

 背景:

     最近在itoo页面调整的时候,发现页面表单或者是文本框没有做基本的判断操作,所以着手demo一篇,希望对大家有帮助!!

--------------------------------------------------------------------------------

1.创建表单组件:

ng g c login1

2.1单规则验证:

<label>用户名:</label>
 <input type="text" #userNameRef=ngModel [(ngModel)]=userName required>
 <span [style.color]="userNameRef.valid ? 'black':'red'">{{userNameRef.valid}}</span>

--------------------------------------------------------------------------------

效果:

Angular4表单验证代码详解

Angular4表单验证代码详解

2.2.多规则验证:(不能为空,用户名和密码的长度)

<div class="form-group">
 <label>用户名:</label>
 <input type="text" class="form-control" #userNameRef=ngModel minlength="3" maxlength="8" [(ngModel)]=userName required>
 <span [style.color]="userNameRef.valid ? 'black':'red'">{{userNameRef.valid}}</span>
</div>

错误原因提示方式:

<div class="form-group">
 <label>用户名:</label>
 <input type="text" class="form-control" #userNameRef=ngModel minlength="3" maxlength="8" [(ngModel)]=userName required>
 <span [style.color]="userNameRef.valid ? 'black':'red'">{{userNameRef.errors|json}}</span>
 <div *ngIf="userNameRef.errors?.required">this is required</div>
<div *ngIf="userNameRef.errors?.minlength">should be 3 chacaters</div>
</div>

效果:

###:初始化,没有输入数据:

Angular4表单验证代码详解

###:输入数据,但是长度小于3:

Angular4表单验证代码详解

###:合法输入:

Angular4表单验证代码详解 

  当然这里有一个问题,就是合法的时候usernameRef.errors=null,但是用户看起来不太美观,所以就需要判断当usernameRef.errors=null的时不出现:

<span [style.color]="userNameRef.valid ? 'black':'red'" *ngIf="userNameRef.errors!=null">{{userNameRef.errors|json}}</span>

具体实例登陆代码:

<form #form="ngForm" (ngSubmit)="form.form.valid && submit(form.value)" novalidate class="form-horizontal" role="form">
 <div class="form-group" [ngClass]="{ 'has-error': form.submitted && !userName.valid }">
  <label class="col-sm-2 control-label">用户名:</label>
  <div class="col-sm-10">
   <input required name="userName" [(ngModel)]="user.userName" #userName="ngModel" type="text" class="form-control" placeholder="请输入用户名...">
   <div *ngIf="form.submitted && !userName.valid" class="text-danger">用户名必须输入!</div>
  </div>
 </div>
 <div class="form-group">
  <label class="col-sm-2 control-label">密码:</label>
  <div class="col-sm-10" [ngClass]="{'has-error': form.submitted && !password.valid }">
   <input required minlength="8" maxlength="12" [(ngModel)]="user.password" name="password" #password="ngModel" type="password" class="form-control" placeholder="请输入密码...">
   <div *ngIf="form.submitted && !password.valid" class="text-danger">密码必须输入,至少要8位!</div>
  </div>
 </div>
 <div class="form-group">
  <div class="col-sm-offset-2 col-sm-10">
   <button type="submit" class="btn btn-success">登录</button>
  </div>
 </div>
</form>

login.component:

import { Component, OnInit} from '@angular/core';
import{UserModel} from '../model/user.model';//引入了usermodel
@Component({
 selector: 'app-login',
 templateUrl: './login.component.html',
 styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
 constructor() { }
 //定义user为Usermodel
 private user=new UserModel();
 ngOnInit() {
 }
/**
 * 登陆事件
 * @param form 表单中的输入值
 */
 submit(form){
 if(form.username=="1"&&form.password=="12345678"){
  alert("登录成功了");
 }else{
  alert("非法用户");
 }
 }
}

3.userModel:

export class UserModel{
 userName:string;
 password:string;
}

效果:

1.未填时点击登陆:

Angular4表单验证代码详解 

2.输入登陆:

Angular4表单验证代码详解 

3.非法用户: 

Angular4表单验证代码详解

总结

以上所述是小编给大家介绍的Angular4表单验证代码详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
May 16 Javascript
javascript实现标签切换代码示例
May 22 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
微信和qq时间格式模板实例详解
Oct 21 Javascript
JavaScript事件用法浅析
Oct 31 Javascript
JavaScript仿微博发布信息案例
Nov 16 Javascript
JS中图片压缩的方法小结
Nov 14 Javascript
JS中offset和匀速动画详解
Feb 06 Javascript
vue watch深度监听对象实现数据联动效果
Aug 16 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
js实现简单的日历显示效果函数示例
Nov 25 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 #jQuery
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 #Javascript
javascript帧动画(实例讲解)
Sep 02 #Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
Sep 02 #Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
Sep 02 #Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
Sep 02 #Javascript
使用vue-resource进行数据交互的实例
Sep 02 #Javascript
You might like
PHP实现链式操作的原理详解
2016/09/16 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
js静态作用域的功能。
2006/12/25 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
python标准日志模块logging的使用方法
2013/11/01 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
利用python实现数据分析
2017/01/11 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python中eval与int的区别浅析
2019/08/11 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Python之变量类型和if判断方式
2020/05/05 Python
python3.7添加dlib模块的方法
2020/07/01 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
装修五一活动策划案
2014/01/23 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
伊琍体标语
2014/06/25 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
谢师宴家长致辞
2015/07/27 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
Java字符串逆序方法详情
2022/03/21 Java/Android