将浏览器内置的必需属性验证与 Angular 5 结合使用?
Use browsers built in validation of the required attribute in combination with Angular 5?
我正在使用 Angular 构建单个应用程序 5. 我使用 Angular 的响应式表单创建了一个表单。
在输入中,我使用了所需的 HTML5 验证属性。当我提交表单并且输入留空时,我希望浏览器内置输入验证:
但是什么都没有。
Angular 是否抑制浏览器内置的验证所需输入字段的行为?我可以激活它并继续使用 FormBuilder 吗?
import {Component} from '@angular/core';
import {FormBuilder, FormGroup} from '@angular/forms';
@Component({
selector: 'app-system-create',
templateUrl: './system-create.component.html',
styleUrls: ['./system-create.component.scss']
})
export class SystemCreateComponent {
form: FormGroup;
constructor(
private fb: FormBuilder
) {
this.form = fb.group({
shortName: ''
});
}
onSubmit() {
console.log("on submit");
}
}
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div class="form-element">
<label>short name</label>
<input class="form-control" formControlName="shortName" type="text" placeholder="e.g. SYS" id="systemForm_shortName" required>
</div>
<button class="btn btn-primary" type="submit">Speichern</button>
</form>
您应该尝试在表单元素中添加属性 ngNativeValidate
以防止 Angular 添加 novalidate
html attribute. As explained in the Angular NgNoValidate
指令文档。
If you want to use native validation with Angular forms, just add ngNativeValidate
attribute
我正在使用 Angular 构建单个应用程序 5. 我使用 Angular 的响应式表单创建了一个表单。
在输入中,我使用了所需的 HTML5 验证属性。当我提交表单并且输入留空时,我希望浏览器内置输入验证:
但是什么都没有。
Angular 是否抑制浏览器内置的验证所需输入字段的行为?我可以激活它并继续使用 FormBuilder 吗?
import {Component} from '@angular/core';
import {FormBuilder, FormGroup} from '@angular/forms';
@Component({
selector: 'app-system-create',
templateUrl: './system-create.component.html',
styleUrls: ['./system-create.component.scss']
})
export class SystemCreateComponent {
form: FormGroup;
constructor(
private fb: FormBuilder
) {
this.form = fb.group({
shortName: ''
});
}
onSubmit() {
console.log("on submit");
}
}
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div class="form-element">
<label>short name</label>
<input class="form-control" formControlName="shortName" type="text" placeholder="e.g. SYS" id="systemForm_shortName" required>
</div>
<button class="btn btn-primary" type="submit">Speichern</button>
</form>
您应该尝试在表单元素中添加属性 ngNativeValidate
以防止 Angular 添加 novalidate
html attribute. As explained in the Angular NgNoValidate
指令文档。
If you want to use native validation with Angular forms, just add
ngNativeValidate
attribute