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 相关文章推荐
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
Nov 14 Javascript
jQuery在html有效在jsp无效的原因及解决方法
Aug 02 Javascript
javascript三元运算符用法实例
Apr 16 Javascript
JavaScript实现把数字转换成中文
Jun 29 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
Jul 27 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
新入门node.js必须要知道的概念(必看篇)
Aug 10 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 Javascript
微信小程序开发中的疑问解答汇总
Jul 03 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
React精髓!一篇全概括小结(急速)
May 23 Javascript
Nuxt的路由动画效果案例
Nov 06 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+mysql留言本源码
2009/11/11 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
python实现八大排序算法(2)
2017/09/14 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
python写程序统计词频的方法
2019/07/29 Python
python编写简单端口扫描器
2019/09/04 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
学术会议主持词
2014/03/17 职场文书
大型会议策划方案
2014/05/17 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
四大名著读书笔记
2015/06/25 职场文书
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL