【发布时间】:2019-07-16 06:43:33
【问题描述】:
我正在创建带有验证的 Angular 6 表单。我只想在提交表单后显示错误消息。重要的事实是在打字过程中消息不应该改变。因此,例如,当用户没有在输入中输入任何内容然后提交表单时,应该会出现所需的消息。之后,当用户键入内容时,消息应该一直可见,直到下一次按下提交按钮。此外,当满足先前的规则时,错误消息不应更改为另一个。老实说,我不知道是否可以使用 Reactive Forms。
app.component.html
<form [formGroup]="form" novalidate (ngSubmit)="submit()" #myform="ngForm">
<input class="input" type="text" formControlName="firstName" />
<p *ngIf="form.get('firstName').hasError('required') && myform.submitted">
Name is required
</p>
<p *ngIf="form.get('firstName').hasError('minlength') && myform.submitted">
Min length of string is {{form.controls.firstName.errors.minlength.requiredLength}}
</p>
<button type="submit">Submit</button>
</form>
app.component.ts
export class AppComponent {
form: FormGroup
constructor(private fb: FormBuilder,) {
this.form = this.fb.group({
firstName: ['', [Validators.required, Validators.minLength(5)]]
});
}
submit() {
console.log(this.form);
}
}
演示:stackblitz
感谢您的帮助!
【问题讨论】:
-
我认为反应式表单是不可能的。模板驱动的表单更灵活,您可以轻松自定义。
-
@shadowman_93,不可能什么都不是 :)(另外,我不同意你的观点:对我来说,反应式表单比模板驱动表单更灵活)
标签: javascript angular forms angular-forms