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 相关文章推荐
js判断字符是否是汉字的两种方法小结
Jan 03 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
详解Bootstrap按钮
Jan 04 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
Sep 27 Javascript
js replace()去除代码中空格的实例
Feb 14 Javascript
几行js代码实现自适应
Feb 24 Javascript
详解Vue2 SSR 缓存 Api 数据
Nov 20 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 Javascript
浅谈vue3中effect与computed的亲密关系
Oct 10 Javascript
浅谈javascript事件环微任务和宏任务队列原理
Sep 12 Javascript
OpenLayers3实现测量功能
Sep 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
Symfony数据校验方法实例分析
2015/01/26 PHP
php while循环控制的简单实例
2016/05/30 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
ASP中Sub和Function的区别说明
2020/08/30 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
2020/07/13 Javascript
复习Python中的字符串知识点
2015/04/14 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
如何在python中使用selenium的示例
2017/12/26 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
2018/02/23 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
个人实用的自我评价范文
2013/11/23 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
幸福来敲门观后感
2015/06/04 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android