【问题标题】:How to trigger form validation on button click in angular2如何在angular2中单击按钮时触发表单验证
【发布时间】:2016-02-19 10:15:08
【问题描述】:

我正在开发 angular2 应用程序,我必须在输入字段上应用验证。

我这里有同样的代码

http://plnkr.co/edit/6RkM0eRftf3KQpoDCktz?p=preview

它对我来说很好,但我想在按钮单击时触发验证并显示所有无效的验证消息

目前它在我点击字段时激活。

我试过了

saveUser() {
        if (this.userForm.valid) {
            alert(`Name: ${this.userForm.value.name} Email: ${this.userForm.value.email}`);
        } else {
            this.userForm.validator();
        }
    }

它没有按预期工作。

如何在按钮单击时触发这些验证,我希望按钮始终处于活动状态。

【问题讨论】:

    标签: javascript validation angular


    【解决方案1】:

    在显示错误时,您可以尝试利用表单控件的submitted 属性。这可以用于相应的ngIf 来显示这些消息。

    <span *ngIf="submitted && !this.userForm.controls.email.valid">...</span>
    

    需要将submitted属性默认初始化为false,调用saveUser方法时设置为true:

    @Component({
    })
    export class SomeComponent {
      constructor() {
        this.submitted = false;
      }
    
      saveUser() {
        this.submitted = true;
        (...)
      }
    }
    

    这样它们只有在表单提交后才可见。

    【讨论】:

    • 你能告诉我更多细节如何做到这一点
    • 是不是不能在 controlmessages.component 中处理“get errorMessage”,使其适用于所有地方
    • 否则我需要在任何地方都这样做
    • 可以,但是您需要自己管理提交的属性。也就是说,您可以直接在表单控制器上进行设置。如果您有权访问您的 controlmessages 组件,则不需要为其添加其他参数...
    猜你喜欢
    • 2016-08-02
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2023-04-11
    • 2012-09-12
    • 1970-01-01
    • 2017-09-09
    • 2015-11-22
    相关资源
    最近更新 更多