我有这种形式,如果我将其保留为空或无效,则会在每个字段下显示错误消息。
<form #projectForm="ngForm" (ngSubmit)="onSubmit()">
<div class="form-group col-md-6" [class.has-error]="codeControl.invalid && codeControl.touched">
<label class="control-label">code</label>
<input type="text" class="form-control" required [(ngModel)]="projet.code" id="code" name="code" #codeControl="ngModel">
<span class="help-block" *ngIf="codeControl.invalid && codeControl.touched">code is required </span>
</div>
<div class="form-group col-md-6" [class.has-error]="libelleControl.invalid && libelleControl.touched">
<label class="control-label">libelle</label>
<input type="text" class="form-control" required [(ngModel)]="projet.libelle" id="libelle" name="libelle" #libelleControl="ngModel">
<span class="help-block" *ngIf="libelleControl.invalid && libelleControl.touched"> libelle is required </span>
</div>
<button type="submit" class="btn btn-primary" >submit </button>
</form>
但是,当涉及到提交按钮时,我不希望在表单有效之前禁用提交按钮,而是希望提交按钮边框变为红色,并且在以下情况下在提交按钮下方显示红色错误消息:单击,表格无效。我该如何实现?
答案 0 :(得分:0)
我将使用简单的getter来管理“提交btn”的状态
get isFormValid():boolean {
this.ngForm && this.ngForm.valid;
}
然后
<button type="submit" class="btn btn-primary" [class.cssClassToManageBtnState]="isFormValid" >submit </button>
答案 1 :(得分:0)
尝试: 在您的组件上
success: any;
constructor ()
{
this.success = true;
}
onSubmit(){
if(this.yourform.invalid){
this.success= false;
return;
}
}
在您的html上
<div *ngIf="success;then content else other_content"></div>
<ng-template #content>
<button type="submit" class="btn btn-primary" >submit </button>
</ng-template>
<ng-template #other_content>
<button type="submit" class="btn btn-primary" style="border: 2px solid red">submit
</button>
<!-- your error message goes here -->
</ng-template>
我在How to use *ngIf else?的此处复制了* ngIf
答案 2 :(得分:0)
我们必须覆盖“提交”按钮的默认行为。因此,删除按钮类型为Submit并向其中添加click事件
<button type="button" (click)="onSubmit()" class="btn btn-primary" >submit </button>
删除表单标签中的Submit事件
<form #projectForm="ngForm">
将条件类添加到按钮
<button type="submit" (click)="onSubmit()" class="btn btn-primary" [ngClass]="projectForm.valid ? '' : 'invalid-form-btn'" >submit </button>
<span *ngIf="!projectForm.valid">The form is not valid </span>
.invalid-form-btn {
border: 1px solid red;
}