如果用户在提交表单时未选择任何选项,我想在mat-radio-group上添加验证。这是我到目前为止所做的,但是没有用。
<mat-radio-group formControlName="{{e.Index}}">
<mat-label>{{ et.Title }}</mat-label>
<mat-radio-button *ngFor="let tq of e.Items" [value]="tq" [checked]="tq.IsSelected">
{{tq.Name}}
</mat-radio-button>
</mat-radio-group>
TS
elements.forEach((e, i) => {
case form.id: {
if (e.Required) {
a = { [name]: new FormControl('', Validators.required) };
} else {
a = { [name]: new FormControl('') };
}
etc ...
break;
}
}
如果您使用ReactiveForm或[[ngModel)],请不要使用[选中]。角度检查是否根据FormControl的值选择单选按钮。
对我来说,不可能知道您的“元素”,“ a”或“ e.index”是什么,但是如果FormControl具有Validators.required,则如果您不选择任何内容,则将无效。其他是您要在提交时显示一条消息。您可以使用以下形式
form=new FormGroup({
control:new FormControl('',Validators.required)
})
你可以用一些像
<form [formGroup]="form">
<mat-radio-group aria-label="Select an option" formControlName="control">
<mat-radio-button value="1">Option 1</mat-radio-button>
<mat-radio-button value="2">Option 2</mat-radio-button>
<!--I used if is "touched" to don't show the error until submit-->
<mat-error *ngIf="form.get('control').touched">Required</mat-error>
</mat-radio-group>
<button (click)="submit(form)">submit</button>
</form>
并且不要忘记在提交中将所有控件标记为已触摸
submit(form)
{
if (form.isValid)
{
....
}else
form.markAllAsTouched()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句