角度材料单选按钮默认选中不验证表单

Posted

技术标签:

【中文标题】角度材料单选按钮默认选中不验证表单【英文标题】:angular material radio buttons default selected not validating the form 【发布时间】:2020-11-01 09:57:43 【问题描述】:

我的项目在 Angular 9 中,我使用的是响应式表单,我的表单中有 Angular Material Radio 按钮组(mat-radio-button),我检查了默认值,并且我的表单中不需要 Radio 控件,因为我选择了默认值。现在我的表单验证了我必须选择一个选项的单选按钮,如果我不选择单选选项,知道为什么我的表单无效,我的保存按钮保持禁用状态。

组件.ts

      this.myform= this._formBuilder.group(
  TaskName: ['', Validators.required],
  Schedule: ['', null],

);

component.html:

  <mat-radio-group aria-labelledby="theschedule" formControlName="Schedule" >
     <mat-radio-button (change)="radioChange($event);"  id="item.Name"  *ngFor="let item of sType" [value]="item.ID" [checked]="item.ID === 1" >
                                item.Name 
     </mat-radio-button>
  </mat-radio-group>

 <button mat-raised-button color="primary" type="submit" [disabled]="!myform.form.valid" >Save</button>

【问题讨论】:

【参考方案1】:

我认为应该是[disabled]="!myForm.valid" 而不是[disabled]="!myform.form.valid"

【讨论】:

我的表单验证有效,问题是当我检查其中一个单选按钮的默认值时,如果我选择空单选,表单不会删除禁用的属性,然后它会生成表单有效的。当我输入选中的默认值时,它应该具有有效的表单

以上是关于角度材料单选按钮默认选中不验证表单的主要内容,如果未能解决你的问题,请参考以下文章

单选按钮“选中”属性不起作用

默认选中的单选输入在 Laravel 中使用 Bootstrap 语法不起作用

在jQuery中,让表单当中的radio按钮默认选中第一个怎么做?

使用 servlet 验证服务器端的单选按钮

验证单选按钮被选中

Angular 4 默认单选按钮默认选中