如何设置表单输入字段的值并重新检查其表单验证错误

ufk

:)

我正在用 angular 材料编写一个 angular8 网络应用程序。

ReactiveForms用来构建一个FormGroup以验证它的字段。

我有两个领域To Date,并To Time说如果我尝试提交表单没有他们填充,用户会看到一个错误,表示他需要填补这些值。

在它们下面我有一个按钮Now,它可以很好地设置日期和时间字段......到现在:)

如果我先按下提交,<mat-error>在它们下面得到它们是空消息,然后按下“现在”按钮,字段被填充但错误消息不会消失。有没有办法专门重新测试这两个表单字段?

这是我的表单,带有输入元素的相关代码和 now 按钮:

<form [formGroup]="queryForm" (submit)="runQuery()">
...
        <div fxLayout="column wrap">
            <div fxLayout="row wrap">
                <mat-form-field>
                    <input matInput #toDate [matDatepicker]="toDatePicker" (focus)="toDatePicker.open()" placeholder="To Date" formControlName="datePeriodTo" />
                    <mat-datepicker-toggle matSuffix [for]="toDatePicker"></mat-datepicker-toggle>
                    <mat-datepicker #toDatePicker></mat-datepicker>
                    <mat-error>{{getError('datePeriodTo')}}</mat-error>
                </mat-form-field>
                <mat-form-field>
                    <input matInput #toTime [ngxTimepicker]="toTimePicker" placeholder="To Time" aria-label="To Time" formControlName="timePeriodTo">
                    <ngx-material-timepicker #toTimePicker></ngx-material-timepicker>
                    <mat-error>{{getError('timePeriodTo')}}</mat-error>
                </mat-form-field>
            </div>
            <div fxLayout="row wrap" fxLayoutAlign="center">
                <button mat-raised-button type="button" (click)="toDate.value=currentDate.format('D/M/YYYY'); toTime.value=currentDate.format('hh:mm a')">Now</button>
            </div>
        </div>
...
</form>

我的getError()函数只是解析错误并显示相关的错误消息:

 getError(field: string) {
    const control = this.queryForm.get(field);
    return control.hasError('required') ? 'field is required' :
        control.hasError('greaterThen') ? 'range values not valid' :
            control.hasError('lessThen') ? 'range values not valid' :
                control.hasError('min') ? 'value is below minimum' :
                    control.hasError('max') ? 'value is above maximum' :
                        !control.valid ? 'unknown error' :
                '';
  }

所以总的来说我想要发生的事情,如果这些表单字段已经存在错误,我按下Now按钮,以便将它们填充到当前日期或时间..重新检查验证,如果这不可能,就不要显示这些错误,因为它们不再相关!

我知道当我按下Now按钮时,我可以专门删除 mat-error 字段中的文本,但我认为 angular 有……更多……更好的处理方式?

谢谢!:)

安德烈·米哈尔丘克

使用 Angular 反应式表单时,您需要使用反应式表单 api。在这种特殊情况下,您可以使用pathcValue https://angular.io/api/forms/FormGroup#patchvalue,因为它只能设置值的子集。

我还建议将您的点击事件处理程序移动到一个单独的函数中:

<button mat-raised-button type="button" (click)="setCurrentDate()">Now</button>

并在您的组件中

private setCurrentDate() {
   this.queryForm.patchValue({
      datePeriodTo: currentDate.format('D/M/YYYY'),
      timePeriodTo: currentDate.format('hh:mm a')
   });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JSF SelectOneMenu 在修复另一个字段的验证错误并重新提交表单后显示错误值

来自分类Dev

Django-如何向表单字段添加验证器(而不是对其进行设置)

来自分类Dev

如何使用RichFaces清除表单字段并重新呈现表单

来自分类Dev

输入字段组合的表单验证

来自分类Dev

如何设置表单字段值-Django

来自分类Dev

表单验证和重定向错误后重新填充字段值;验证有效,但值无效(CodeIgniter 3)

来自分类Dev

选择字段的JavaScript表单验证,检查值不为0

来自分类Dev

jQGrid-清除验证错误时的添加表单输入字段

来自分类Dev

如何防止用户使用检查器工具更改表单值或删除输入字段元素?

来自分类Dev

如何重新验证具有多个相关字段的表单?

来自分类Dev

如果以编程方式设置输入值,表单不会触发验证

来自分类Dev

Javascript:在 HTML 表单隐藏输入字段中设置值

来自分类Dev

如何使用输入追加来验证表单字段

来自分类Dev

PHP-在验证失败的字段和错误消息中重新显示具有有效值的表单

来自分类Dev

PHP-在验证失败的字段和错误消息中重新显示具有有效值的表单

来自分类Dev

如何设置Xamarin表单输入字段的禁用文本颜色?

来自分类Dev

表单提交错误后如何重新填充文件输入

来自分类Dev

表单验证:如何获取错误中显示的字段的实际长度?

来自分类Dev

表单验证立即合并输入字段

来自分类Dev

表单验证立即合并输入字段

来自分类Dev

删除输入字段上的表单验证

来自分类Dev

验证表单输入字段的正确方法

来自分类Dev

jQuery:如何检查表单字段的值

来自分类Dev

提交表单时如何获取隐藏输入字段的值?

来自分类Dev

如何设置表单输入的名称

来自分类Dev

如何设置CodeIgniter表单验证的默认值?

来自分类Dev

如何设置表单内选择字段的默认值

来自分类Dev

如何设置表单内选择字段的默认值

来自分类Dev

Rails 表单,如何使用 jquery 设置隐藏字段的值

Related 相关文章

  1. 1

    JSF SelectOneMenu 在修复另一个字段的验证错误并重新提交表单后显示错误值

  2. 2

    Django-如何向表单字段添加验证器(而不是对其进行设置)

  3. 3

    如何使用RichFaces清除表单字段并重新呈现表单

  4. 4

    输入字段组合的表单验证

  5. 5

    如何设置表单字段值-Django

  6. 6

    表单验证和重定向错误后重新填充字段值;验证有效,但值无效(CodeIgniter 3)

  7. 7

    选择字段的JavaScript表单验证,检查值不为0

  8. 8

    jQGrid-清除验证错误时的添加表单输入字段

  9. 9

    如何防止用户使用检查器工具更改表单值或删除输入字段元素?

  10. 10

    如何重新验证具有多个相关字段的表单?

  11. 11

    如果以编程方式设置输入值,表单不会触发验证

  12. 12

    Javascript:在 HTML 表单隐藏输入字段中设置值

  13. 13

    如何使用输入追加来验证表单字段

  14. 14

    PHP-在验证失败的字段和错误消息中重新显示具有有效值的表单

  15. 15

    PHP-在验证失败的字段和错误消息中重新显示具有有效值的表单

  16. 16

    如何设置Xamarin表单输入字段的禁用文本颜色?

  17. 17

    表单提交错误后如何重新填充文件输入

  18. 18

    表单验证:如何获取错误中显示的字段的实际长度?

  19. 19

    表单验证立即合并输入字段

  20. 20

    表单验证立即合并输入字段

  21. 21

    删除输入字段上的表单验证

  22. 22

    验证表单输入字段的正确方法

  23. 23

    jQuery:如何检查表单字段的值

  24. 24

    提交表单时如何获取隐藏输入字段的值?

  25. 25

    如何设置表单输入的名称

  26. 26

    如何设置CodeIgniter表单验证的默认值?

  27. 27

    如何设置表单内选择字段的默认值

  28. 28

    如何设置表单内选择字段的默认值

  29. 29

    Rails 表单,如何使用 jquery 设置隐藏字段的值

热门标签

归档