angular的form表单验证

2023-11-17

angular的form表单验证

注:基于日常工作的总结,只是基础用法,一般的情况下应该是够用了,本次总结是angular的响应式表单验证,不足之处欢迎指正!!!

  1. 首先要在你的页面组件的ts文件中引入angular的表单模块
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';

在这里插入图片描述
2. 在构造器里面

  constructor(
    private fb: FormBuilder
  ) { }

在这里插入图片描述
3. 定义表单验证 validateForm: FormGroup; // 表单验证

. 初始化表单

  1. ts的代码
//在ngOnInit里面调用方法
  ngOnInit() {
  this.initFormGroup();
 }
  initFormGroup() {
    this.validateForm = this.fb.group({
      name: [null],//中文名称
      gender: [null],//性别
      eEthical: [null],//民族
      cardTypeName: [null, [Validators.required]],//证件类型名称
      remarks: [null],//备注
    }, { updateOn: 'blur' });
  }
  //有必填项和非必填项,必填项就添加Validators.required属性,并且在html里面添加
   <nz-form-label nzSpan="8" nzRequired>证件类型</nz-form-label>
   用的前端框架是ant-desing

5、html页面


<form nz-form [formGroup]="validateForm">
<nz-row [nzGutter]="24">
 <nz-col nzSpan="7">
        <nz-form-item class="mb-sm">
          <nz-form-label nzSpan="8">中文姓名</nz-form-label>
          <nz-form-control nzSpan="16">
            <input  nz-input formControlName="name" placeholder="请输入中文姓名" id="dpsrChnName" />
          </nz-form-control>
        </nz-form-item>
      </nz-col>
      <nz-col nzSpan="7">
        <nz-form-item class="mb-sm">
          <nz-form-label nzSpan="8" nzRequired>证件类型</nz-form-label>
          <nz-form-control nzSpan="16">
            <nz-select  formControlName="cardTypeName" id="cardTypeName"
              [nzAllowClear]="false" nzPlaceHolder="请选择证件类型">
              <nz-option *ngFor="let option of cardData" [nzLabel]="option.name" [nzValue]="option.code">
              </nz-option>
            </nz-select>
            <!--  必填项校验提示 -->
            <nz-form-explain
              *ngIf="validateForm.get('cardTypeName').dirty && validateForm.get('cardTypeName').errors">
              证件类型不能为空
            </nz-form-explain>
          </nz-form-control>
        </nz-form-item>
      </nz-col>
         <nz-col>
            <button nz-button nzType="primary" (click)="add()">保存</button>
            <button nz-button nzType="default" (click)="cancelAdd()">取消</button>
      </nz-col>
      </nz-row >
      
</form>

6、对数据进行保存

add(){
    const param = this.validateForm.value;
    for (const i in this.validateForm.controls) {
      if (this.validateForm.controls.hasOwnProperty(i)) {
        this.validateForm.controls[i].markAsDirty();
        this.validateForm.controls[i].updateValueAndValidity();
      }
    }
    if (!this.validateForm.valid) {
      return;
    }
    this.http.post(http.add, param ).subscribe((result: any) => {
      if (result.code=== 200) {
        this.message.success('添加成功', { nzDuration: 1000 })
        //表单清空
        this.validateForm.reset();
      }
    });
}

7、验证通过没有问题调保存的接口传参param即可,未通过验证前端页面会有提示
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

angular的form表单验证 的相关文章

随机推荐

  • Altium Designer侧边栏分上下或者左右两栏,并恢复

    如何分上下或左右 拖动的时候 鼠标移动到上面红框内 即可有提示 松开即完成 如何恢复 按住Shift 并鼠标拖动
  • Pytorch显存动态分配规律探索

    下面通过实验来探索Pytorch分配显存的方式 实验 显存到主存 我使用VSCode的jupyter来进行实验 首先只导入pytorch 代码如下 import torch 打开任务管理器查看主存与显存情况 情况分别如下 在显存中创建1GB
  • unity读取excel数据并绘制曲线

    一 读取数据 1 导入EPPlus类库 EPPlus dll 2 创建script脚本 3 创建空物体 挂载脚本 using System Collections using System Collections Generic using
  • android studio怎么更换默认主题?

    Android Studio默认主题IntelliJ 我们可以修改成黑色的Dracula的主题或者是Windows主题 1 首先双击桌面Android Studio图标 打开Android Studio 2 选择Android Studio
  • python3 nelink

    https github com facebookarchive gnlpy blob master netlink py 其中 注意这的encode decode 操作 class NulStringType object Ensure
  • hive-03-hive的分区

    1 hive分区与Bucket的畏难情绪 刚刚开始学习 这个的时候 一直感觉他比较难 看名字就觉得不好理解 但是实际上学起来超级简单 出现背景 这个东西为什么出来呢 来看一个需求 技术的的出现总是因为有了需求才会诞生的 假设我们有数据宾馆的
  • 1x pcie 引脚_PCIe 接口 引脚定义 一览表

    针脚号 定义 B 说明 定义 A 说明 1 12V 12V电压 PRSNT1 热拔插存在检测 2 12V 12V电压 12V 12V电压 3 RSVD 保留针脚 12V 12V电压 4 GND 地 GND 地 5 SMCLK 系统管理总线时
  • mac 安装 Adobe CC XD

    Adobe CC XD 在中国区已经免费 没什么破解一说 1 打开网址 https www adobe com cn products xd html 点击免费获取XD 下载 XD Installer dmg 2 双击 XD Install
  • sqli-labs/Less-13

    首先需要判断一下注入类型 输入如下 admin 存在报错信息 所以可以进行报错注入 但是无论正确与否都不会存在回显所以不能使用联合注入这题我们就是用报错注入吧 然后从报错信息我们可以知道注入类型为单引号注入 而且带有一个括号 我们进行作证
  • 图扑智慧城市

    十四五 新型城镇化实施方案 提出围绕提升城市治理能力智慧化水平提高数字政府服务能力 推行城市数据一网通用 城市运行一网统管 政务服务一网通办 公共服务一网通享 增强城市运行管理 决策辅助和应急处置能力 构建 人 企 地 物 政 五张城市基础
  • 输入商品单价和商品数量(输入负数时代表输入结束),自动计算商品总价,若支付金额不足会提示生育应付金额

    输入商品单价和商品数量 输入负数时代表输入结束 自动计算商品总价 若支付金额不足会提示生育应付金额 package day04 import java util Scanner public class Demo04 public stat
  • 在b站上跟着沐神学习深度学习

    算是给自己做个记录吧 每次学习之后都做点自己的笔记 加深一下印象吧 之前也看过一些资料 但是到头来还是有点乱 立下此贴为证 好好学习
  • python三位数水仙花数(附零基础学习资料)

    前言 所以直接上代码 python输入一个水仙花数 三位数 输出百位十位个位 从控制台输入一个三位数num 如果是水仙花数就打印num是水仙花数 否则打印num不是水仙花数 任务 1 定义变量num用于存放用户输入的数值 2 定义变量gw
  • TS中的泛型

    一 泛型是什么 有什么作用 当我们定义一个变量不确定类型的时候有两种解决方式 使用any 使用any定义时存在的问题 虽然 以 知道传入值的类型但是无法获取函数返回值的类型 另外也失去了ts类型保护的优势 使用泛型 泛型指的是在定义函数 接
  • 解除Discuz!X2的15分钟锁定

    第一种方法 清两个failedlogin空表 解除用户锁定 mysql gt delete from pre common failedlogin Query OK 1 row affected 0 02 sec 解除UC用户锁定 mysq
  • C/C++学习记录--double和float的区别

    单精度浮点数 float 与双精度浮点数 double 的区别如下 1 在内存中占有的字节数不同 单精度浮点数在机内占4个字节 双精度浮点数在机内占8个字节 2 有效数字位数不同 单精度浮点数有效数字8位 双精度浮点数有效数字16位 3 所
  • HertzBeat监控部署及使用

    易用友好的高性能监控告警系统 网站监测 PING连通性 端口可用性 数据库监控 API监控 自定义监控 阈值告警 告警通知 邮件微信钉钉飞书 安装部署 HertzBeat最少依赖于 关系型数据库MYSQL8 实际亲测用mysql5 7 也行
  • 用java.util.Timer定时执行任务

    用java util Timer定时执行任务 如果要在程序中定时执行任务 可以使用java util Timer这个类实现 使用Timer类需要一个继承了java util TimerTask的类 TimerTask是一个虚类 需要实现它的
  • 基于spring+struts2+hibernate实现的Java web论坛

    源码及论文下载 源码及论文下载 http www byamd xyz tag java 1 绪论 这次的实训项目是开发一个java论坛系统 而开发java论坛系统的目的是提供一个供java学习交流的平台 为Java程序员提供交流经验 探讨问
  • angular的form表单验证

    angular的form表单验证 注 基于日常工作的总结 只是基础用法 一般的情况下应该是够用了 本次总结是angular的响应式表单验证 不足之处欢迎指正 首先要在你的页面组件的ts文件中引入angular的表单模块 import For