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加ASP二级域名转向的代码
May 17 Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
AngularJS表达式讲解及示例代码
Aug 16 Javascript
JQuery手速测试小游戏实现思路详解
Sep 20 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
Vue如何引入远程JS文件
Apr 20 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
js实现数字滚动特效
Dec 16 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+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
php格式文件打开的四种方法
2018/02/24 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
javascript函数库-集合框架
2007/04/27 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
如何通过python检查文件是否被占用
2020/12/18 Python
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
不打扫卫生检讨书
2014/02/12 职场文书
《假如》教学反思
2014/04/17 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
创业计划书之宠物店
2019/09/19 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS