要在Angular 7中实现表单验证,在按钮按下或属性不在HTML中时,可以使用表单的valid属性和控件的touched属性来进行验证。
首先,你需要在HTML模板中定义一个表单,并设置表单控件的验证规则。例如,以下代码展示了一个包含一个必填字段的表单:
在上面的代码中,我们使用了Angular的双向绑定(ngModel)来绑定表单控件和组件中的属性。我们还使用了required属性来设置字段为必填项。当字段为空或不符合验证规则时,Angular会自动将控件的状态设置为invalid。
在按钮上,我们使用了[disabled]属性来根据表单的valid属性来禁用或启用按钮。如果表单的valid属性为false(即表单中存在无效的字段),那么按钮就会被禁用。
在组件中,你可以添加一个submitForm方法来处理表单的提交动作。例如:
export class MyComponent {
name: string;
submitForm(form: NgForm) {
if (form.valid) {
// 执行提交操作
} else {
// 表单验证失败
}
}
}
在submitForm方法中,我们检查了form的valid属性。如果valid为true,表示表单验证通过,可以执行提交操作。如果valid为false,表示表单验证失败,我们可以执行其他操作,如显示错误消息。
请注意,当控件的valid属性为false时,Angular会自动添加一些CSS类,以便你可以根据控件的状态来自定义样式。例如,当控件是无效的时候,Angular会自动添加ng-invalid和ng-dirty类。你可以使用这些类来自定义样式或显示错误消息。
希望以上解决方法可以帮助到你!