Kgn*_*web 13 angular-validation angular angular-reactive-forms angular7
我有一个Angular7 app&Reactive Forms Module用于验证和表单。
这就是我的模板的样子。
<div class="row" [formGroup]="jobForm">
<div class="form-group"
[ngClass]="{'has-error': jobForm.get('jobTitle').errors &&
(jobForm.get('jobTitle').touched || jobForm.get('jobTitle').dirty) }">
<input type="text" class="form-control" formControlName="jobTitle" />
<span class="help-block" *ngIf="formError">
{{ formError.jobTitle }}
</span>
</div>
<br />
<button type="button" class="btn btn-primary" disabled="jobTitle.errors.required"
(click)="submit(jobTitle,jobDesc)">Create</button>
Run Code Online (Sandbox Code Playgroud)
组件.ts
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
@Component({
selector: 'app-create-job',
templateUrl: './create-job.component.html',
styleUrls: ['./create-job.component.css']
})
export class CreateJobComponent implements OnInit {
constructor(private fb: FormBuilder) {}
jobForm: FormGroup;
formError: any;
validationMessages = {
jobTitle: { required: 'Job Title required'},
jobCode: { required: 'Job Coderequired'},
};
ngOnInit() {
this.jobForm = this.fb.group({
jobTitle: ['', Validators.required]
});
this.formError = {
jobTitle: '', jobCode : ''
};
this.jobForm.valueChanges.subscribe(data => {
this.logValidationError(this.jobForm);
});
Run Code Online (Sandbox Code Playgroud)
}
有这样的 2-3 个输入元素有验证。
如果任何验证有错误,我如何禁用提交。我不想像对待一处房产那样逐一进行。
我的意思是如果formError有任何错误,保持按钮禁用和最初禁用。
谢谢!
mon*_*_za 18
您需要检查表单是否为valid.
<button type="submit" [disabled]="!jobForm.valid">Submit</button>
Run Code Online (Sandbox Code Playgroud)
您需要使用三元运算符,因为 disabled 接受true和null才能正常工作
<button
type="button"
class="btn btn-primary"
[disabled]="jobTitle.errors.required? true: null"
(click)="submit(jobTitle,jobDesc)">
Create
</button>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53787 次 |
| 最近记录: |