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 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
javawscript 三级菜单的实现原理
Jul 01 Javascript
js location.replace与location.reload的区别
Sep 08 Javascript
JQuery动态给table添加、删除行 改进版
Jan 19 Javascript
封装了一个js图片轮换效果的函数
Sep 28 Javascript
namespace.js Javascript的命名空间库
Oct 11 Javascript
THREE.JS入门教程(5)你应当知道的十件事
Jan 24 Javascript
JavaScript监听和禁用浏览器回车事件实例
Jan 31 Javascript
JavaScript计算器网页版实现代码分享
Jul 15 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
vue proxy 的优势与使用场景实现
Jun 15 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
用PHP连接MySQL代码的参数说明
2008/06/07 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
python命令行工具Click快速掌握
2019/07/04 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
什么是python的列表推导式
2020/05/26 Python
Python中SQLite如何使用
2020/05/27 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
个人教师自我评价范文
2013/12/02 职场文书
怎样写演讲稿
2014/01/04 职场文书
大学毕业感言
2014/01/10 职场文书
《乡愁》教学反思
2014/02/18 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS