validation - 提交时的 Angular 2 触发器表单验证

标签 validation angular typescript angular2-forms

我创建了一个带有 angular 2 的表单并添加了一些客户验证器。现在我想在用户点击提交按钮时触发表单验证。到目前为止,在我发现的示例中,只要表单无效,提交按钮就会被禁用,但我希望提交按钮始终启用,并且当用户点击提交时,表单应该被验证。有谁知道我如何使这项工作以及我应该使用哪种 typescript 方法?我找到了 updateValueAndValidity 方法,但它似乎不适用于此方法。

最佳答案

如果您使用的是模板驱动表单,则可以使用以下语法:

<form #f="ngForm" (submit)="add(f.valid)" novalidate>
    <button type="submit">Save</button>
</form>

.ts

add(isValid: boolean){
   if(isValid){
       //do something
   }
}

你也可以像这样在提交时添加一些错误:

<form #f="ngForm" (submit)="add(f.valid)" novalidate>
    <label>Name</label>
    <div>
        <input [(ngModel)]="name" name="name" #name="ngModel" required>
    </div>
    <div[hidden]="name.valid || (name.pristine && !f.submitted)">
        <small class="text-danger">Please input name</small>
    </div>
    <button type="submit">Save</button>
</form>

关于validation - 提交时的 Angular 2 触发器表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40215534/

相关文章:

angular - 在带有 *ngFor 的 Angular 2 模板中使用可观察对象

javascript - 找不到自定义 typescript v3

asp.net-mvc - 如何使用RequiresJs加载typescript模块(asp.net mvc/visual studio环境)

c++ - While 循环中的输入验证

javascript - 提交表单后如何重置表单和验证(AngularJS)

javascript - 如何*ngFor 超过一组 ngModel 可绑定(bind)属性

Angular 2 : 404 error occur when I refresh through the browser

select2 下拉列表的 jquery 验证弹出窗口位置问题

c# - 验证解决方案中的 .csproj 文件

reactjs - React Typescript 测试 - 目标容器不是 DOM 元素