详解Angular实现表单验证功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详解Angular实现表单验证功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7129字,纯文字阅读大概需要11分钟。
内容图文
Angular表单验证分为两种验证:1.内置验证(required,minlength等);2.自定义验证(正则表达式)。本文主要为大家详细介绍了Angular实现表单验证功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。接下来我们用一个注册账号的demo来看一下这两种验证是如何实现的。
项目界面
一、内置验证
其中账户名有required验证和最短长度验证,其他两个只有required验证
1.项目目录
----------app.component.ts
----------app.component.html
----------app.component.css
----------app.module.ts
2.项目代码
app.module.ts
app.component.ts
简单来说,在使用验证表单的时候,大致分为四步:
(1)导入相关模块FormGroup, FormControl, Validators;
(2)声明表单验证变量From:FromGroup;
(3)定义验证规则;
(4)通过它所属的控件组(FormGroup)的get方法来访问表单控件
app.component.html
<p class="wrapper"> <p class="row"> <p class="title-wrapper">注册账号</p> </p> <p class="row"> <p class="contain-wrapper" [formGroup]="Form"> <label for="name">账户名:</label> <input type="text" id="name" formControlName="name"><br/> <p *ngIf="name.invalid && (name.dirty || name.touched)" class="alert alert-danger"> <p *ngIf="name.errors.required"> 请输入长度账户名! </p> <p *ngIf="name.errors.minlength"> 账户名长度不小于4! </p> </p> <label for="email">邮箱:</label> <input type="text" id="email" formControlName="email"><br/> <p *ngIf="email.invalid && (email.dirty || email.touched)" class="alert alert-danger"> <p *ngIf="email.errors.required"> 请输入邮箱! </p> </p> <label for="tel">电话:</label> <input type="text" id="tel" formControlName="tel"> <p *ngIf="tel.invalid && (tel.dirty || tel.touched)" class="alert alert-danger"> <p *ngIf="tel.errors.required"> 请输入电话! </p> </p> </p> </p> <p class="row"> <button class="btn btn-primary confirm">确认</button> </p> </p>
app.component.css
*{ font-size: 18px; } .wrapper{ margin: 0 auto; margin-top:10%; width:30%; height: 20%; border:1px solid black; border-radius: 10px; } .title-wrapper{ margin: 0 auto; padding-top: 20px; padding-bottom: 20px; width:370px; text-align: center; font-size: 20px; font-weight: 800; } label{ display: inline-block; width:72px; } .contain-wrapper{ width: 300px; margin:0 auto; } .confirm{ margin-top:20px; width:100%; }
3.项目效果
二、自定义验证
自定义表单验证,需要创建自定义验证器,我们接下来更改邮箱的验证,将其改为有格式的验证,而不是单纯的存在验证,首先我们来看一下项目目录的更改
1.项目目录
----------app.component.ts
----------app.component.html
----------app.component.css
----------app.module.ts
----------emailAuthentication.ts
2.项目代码
app.module.ts
注册自定义验证器EmailValidatorDirective
emailAuthentication.ts
app.component.ts
import { Component,OnInit } from '@angular/core'; import { FormGroup, FormControl, Validators } from '@angular/forms'; import { emailValidator } from './emailAuthentication'; //导入emailValidator自定义验证器 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'app'; //email的正则表达式 emailExp = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ ; Form:FormGroup; data={ name:"", email:"", tel:"" } ngOnInit(): void { this.Form = new FormGroup({ 'name': new FormControl(this.data.name, [ Validators.required, Validators.minLength(4) ]), 'email': new FormControl(this.data.email, [ Validators.required, emailValidator(this.emailExp) //自定义验证器 ]), 'tel': new FormControl(this.data.tel, Validators.required) }); } get name() { return this.Form.get('name'); } get email() { return this.Form.get('email'); } get tel() { return this.Form.get('tel'); } }
app.component.html
<p class="wrapper"> <p class="row"> <p class="title-wrapper">注册账号</p> </p> <p class="row"> <p class="contain-wrapper" [formGroup]="Form"> <label for="name">账户名:</label> <input type="text" id="name" formControlName="name"><br/> <p *ngIf="name.invalid && (name.dirty || name.touched)" class="alert alert-danger"> <p *ngIf="name.errors.required"> 请输入账户名! </p> <p *ngIf="name.errors.minlength"> 账户名长度不小于4! </p> </p> <label for="email">邮箱:</label> <input type="text" id="email" formControlName="email" required><br/> <p *ngIf="email.invalid && (email.dirty || email.touched)" class="alert alert-danger"> <p *ngIf="email.errors.forbiddenName"> 请输入正确格式的邮箱! </p> </p> <label for="tel">电话:</label> <input type="text" id="tel" formControlName="tel"> <p *ngIf="tel.invalid && (tel.dirty || tel.touched)" class="alert alert-danger"> <p *ngIf="tel.errors.required"> 请输入电话! </p> </p> </p> </p> <p class="row"> <button class="btn btn-primary confirm" [disabled]="Form.invalid" >确认</button> </p> </p>
在最后确认的时候,我们设置一下按钮的disabled属性,在表单验证不通过的时候,确认按钮是点击不了的,显示不可点击状态。[disabled]="Form.invalid"。
3.项目效果
相关推荐:
jquery表单验证插件
jQuery表单验证的实例代码
JavaScript中实现表单验证
以上就是详解Angular实现表单验证功能的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的详解Angular实现表单验证功能全部内容,希望文章能够帮你解决详解Angular实现表单验证功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。