Angular4表单验证代码详解

发布时间 - 2026-01-11 03:04:46    点击率:

 背景:

     最近在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>

--------------------------------------------------------------------------------

效果:

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>

效果:

###:初始化,没有输入数据:

###:输入数据,但是长度小于3:

###:合法输入:

 

  当然这里有一个问题,就是合法的时候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.未填时点击登陆:

 

2.输入登陆:

 

3.非法用户: 

总结

以上所述是小编给大家介绍的Angular4表单验证代码详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


# angular4  # 表单验证  # AngularJS使用ngMessages进行表单验证  # angular实现表单验证及提交功能  # AngularJS中实现用户访问的身份认证和表单验证功能  # 详解AngularJS中的表单验证(推荐)  # AngularJS手动表单验证  # 详细解读AngularJS中的表单验证编程  # AngularJS实现的获取焦点及失去焦点时的表单验证功能示例  # 强大的 Angular 表单验证功能详细介绍  # AngularJS 表单验证手机号的实例(非必填)  # Angular2.js实现表单验证详解  # AngularJS自定义表单验证功能实例详解  # 表单  # 请输入  # 小编  # 不太  # 给大家  # 或者是  # 所述  # 给我留言  # 未填  # 为空  # 文本框  # 有一个  # 有任何  # 引入了  # div  # form  # group  # color  # black  # red 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Linux后台任务运行方法_nohup与&使用技巧【技巧】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  教你用AI将一段旋律扩展成一首完整的曲子  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何批量查询域名的建站时间记录?  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  如何在景安云服务器上绑定域名并配置虚拟主机?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  在线教育网站制作平台,山西立德教育官网?  Python文本处理实践_日志清洗解析【指导】  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel如何使用Sanctum进行API认证?(SPA实战)  深圳网站制作平台,深圳市做网站好的公司有哪些?  EditPlus 正则表达式 实战(3)  PHP 500报错的快速解决方法  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  如何在宝塔面板中修改默认建站目录?  Java遍历集合的三种方式  公司网站制作价格怎么算,公司办个官网需要多少钱?  MySQL查询结果复制到新表的方法(更新、插入)  jQuery validate插件功能与用法详解  Android Socket接口实现即时通讯实例代码  在centOS 7安装mysql 5.7的详细教程  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Android 常见的图片加载框架详细介绍  网站制作免费,什么网站能看正片电影?  如何用狗爹虚拟主机快速搭建网站?  如何在阿里云购买域名并搭建网站?  如何在云指建站中生成FTP站点?  如何在Windows虚拟主机上快速搭建网站?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  如何确保西部建站助手FTP传输的安全性?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  制作电商网页,电商供应链怎么做?  Laravel如何处理异常和错误?(Handler示例)  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel集合Collection怎么用_Laravel集合常用函数详解