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 相关文章推荐
Microsoft Ajax Minifier 压缩javascript的方法
Mar 05 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
Javascript冒泡排序算法详解
Dec 03 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
js实现类似新浪微博首页内容渐显效果的方法
Apr 10 Javascript
JS动态日期时间的获取方法
Sep 28 Javascript
详解iframe与frame的区别
Jan 13 Javascript
JavaScript检查子字符串是否在字符串中的方法
Feb 03 Javascript
判断数组是否包含某个元素的js函数实现方法
May 19 Javascript
Three.js学习之文字形状及自定义形状
Aug 01 Javascript
JS实现仿PS的调色板效果完整实例
Dec 21 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
Dec 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
Zend 输出产生XML解析错误
2009/03/03 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
使用PYTHON创建XML文档
2012/03/01 Python
python连接mysql调用存储过程示例
2014/03/05 Python
Python采用raw_input读取输入值的方法
2014/08/18 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
拉丁舞学习者的自我评价
2013/10/27 职场文书
毕业生怎样写好自荐信
2013/11/11 职场文书
医院门卫岗位职责
2013/12/30 职场文书
班级入场式解说词
2014/02/01 职场文书
个人廉洁自律总结
2015/03/06 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python