[Angular] 笔记 15:模板驱动表单 - 表单验证

油管视频: Form Validation

有三种类型的验证: valid, pristine(是否被编辑过,被改过),以及 touched

相反的属性: invalid, dirty, untouched

pokemon-template-form.component.html 代码修改:

任何时候看见 "ngModel",就知道是用于表单验证。

html 复制代码
<form #form="ngForm">
  Pokemon Name:
  <input type="text" [(ngModel)]="pokemon.name" name="name" />
  <label>
    <input
      type="radio"
      name="isCool"
      [value]="true"
      #pokemonName="ngModel"      增加模板引用变量 pokemonName
      [ngModel]="pokemon.isCool"
    />Pokemon is cool?
  </label>
  <label>
    <input
      type="radio"
      name="isCool"
      [value]="false"
      [ngModel]="pokemon.isCool"
      (ngModelChange)="toggleIsCool($event)"
    />Pokemon is NOT cool?
  </label>
  <label>
    <input
      type="checkbox"
      name="acceptTerms"
      [(ngModel)]="pokemon.acceptTerms"
    />
    Accept Terms?</label
  >
</form>
<div>
  MODEL: {{ pokemon | json }} 
  FORM: {{ form.value | json }}
  / 新增code
  ERROR: <div *ngIf="!pokemonName.pristine">NOT PRINSTINE ANYMORE IT IS DIRTY!</div>
</div>

web 界面,如果选了其他 radio button,就会出现"NOT PRINSTINE ANYMORE IT IS DIRTY!"

相关推荐
智者知已应修善业14 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
张人玉15 小时前
百度 AI 图像识别 WinForms 应用代码分析笔记
人工智能·笔记·百度
xqqxqxxq16 小时前
背单词软件技术笔记(V1.0核心版及V2.0随机挖字母)
笔记
天天扭码16 小时前
如何实现流式输出?一篇文章手把手教你!
前端·aigc·ai编程
前端 贾公子16 小时前
vue移动端适配方案 === postcss-px-to-viewport
前端·javascript·html
YJlio16 小时前
Active Directory 工具学习笔记(10.8):AdInsight——保存与导出(证据留存、共享与二次分析)
数据库·笔记·学习
xqqxqxxq17 小时前
背单词软件技术笔记(V2.0扩展版)
java·笔记·python
GISer_Jing17 小时前
AI营销增长:4大核心能力+前端落地指南
前端·javascript·人工智能
yuxb7317 小时前
Kubernetes核心组件详解与实践:controller
笔记·kubernetes