问题标签 [angular-custom-validators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
524 浏览

angular - 表单组上的角度自定义交叉字段验证无法按预期的日期字段工作

我有一个带有开始日期和结束日期的表格。开始日期应该是从第二天开始,结束日期应该是从开始后至少 7 天。我正在使用 Angular 材料日期选择器并为这两个字段设置 minDate 值。我在 FormGroup 级别有一个自定义验证器,用于验证 7 天逻辑并在验证失败时显示 End Date 字段的错误消息。

如果我为结束日期手动输入较旧的日期,验证工作正常并显示错误消息。但是,如果我将开始日期更改为将来的日期,然后选择结束日期以使验证失败,则不会显示错误消息。基本上,仅当日期早于最初设置的 minDate 值时才会显示错误消息。对于结束日期大于 minDate 的任何验证失败,不会显示错误。

我的 HTML 代码 -

我的 TS 文件 -

validateEndDate 是验证开始和结束日期的自定义验证器 { validators: validateEndDate('startDate', 'endDate') });

这是显示错误的代码 -

我不确定为什么仅当日期小于 minDate 值时才显示错误,而不是所有验证错误。

0 投票
0 回答
167 浏览

angular - 自定义验证器在 Angular 10 的 FormGroup 中不起作用

在我的反应形式中,我有两个密码字段。两个匹配两个字段的值我创建了一个自定义验证器,然后在 ts 文件的表单组中分配该验证器。代码如下:

必须匹配验证器代码:

但 MustMatch 显示错误如下:

'{验证器类型的参数:(formGroup:FormGroup)=> void; }' 不可分配给类型为 'ValidatorFn | 的参数 验证器Fn[] | 抽象控制选项'。对象字面量只能指定已知属性,而 'validator' 类型中不存在 'ValidatorFn | 验证器Fn[] | 抽象控制选项'。

由于我是角度新手,任何人都可以帮我解决这个问题。

0 投票
1 回答
367 浏览

angular - 带有参数的自定义验证器不适用于角度中的文本框和复选框

在我的反应形式中,我有一个文本框和一个复选框。我希望在选中复选框时,文本框可以为空或为空。如果未选中复选框,则应显示所需值的验证消息。所以我写了一个带参数的自定义验证器。但是验证器不工作表单代码如下:

ts文件代码为:

自定义验证器是:

谁能让我知道问题出在哪里?请按照以下链接获取可行的示例。

演示

0 投票
1 回答
33 浏览

angular - 我的 Validator 类或控制台中不断发生此错误的可观察管道中的错误到底是什么?

一段时间后,我的控制台上不断出现错误。谁能告诉我是因为 API 不稳定吗?我是 Angular 的初学者

异步验证器类:

服务:

我的控制台上不断出现的错误:

在此处输入图像描述

0 投票
1 回答
950 浏览

angular - 当 FormGroup 出现新错误时,Angular Reactive 表单不更新

所以我在 ngOnInit() 中声明了我的 FormGroup 并调用了我的验证器函数来确保密码和确认密码字段是匹配的

我的打字稿

所有字段也都有自己的 getter 方法,除了一件事外一切正常。我的确认密码字段似乎永远不会识别密码不匹配时满足的条件,如果该字段中没有任何内容,他们会抱怨因为它是必需的,但是一旦我在输入中添加一个值,错误消息就会消失并且它不会像它应该那样触发第二个跨度。

我的html

0 投票
1 回答
159 浏览

angular - 以 HHH:MM 格式输入小时的 Angular 自定义验证器

我需要在几小时和几分钟内验证输入,但它是 HHH:MM 中 6 个字符的奇怪格式。例如,需要在输入中输入30 小时和 15 分钟,例如030:15

下面是我创建自定义验证器的尝试,但我需要一些帮助才能让正则表达式比较输入的小时数在 0-70 和分钟之间为 00-59。

0 投票
1 回答
63 浏览

angular - FormControl.Validators.pattern 无法正常工作,而具有相同字符串的正则表达式显示数据匹配

我正在尝试为电话号码创建模式,我希望看起来像这样:

  1. +375 29 555 55 55
  2. 80-33-555-555-55
  3. +375-25-555-55-55
  4. 80445555555等

我写了以下代码:

.ts

.html

但我有错误: 在此处输入图像描述

A 还尝试将 .ts 更改为此phoneFormControl = new FormControl('', [Validators.required, Validators.pattern('^\s*80\s?-?\s?(25|29|33|44)\s?-?\s?\d{3}\s?-?\s?\d{2}\s?-?\s?\d{2}$')]); ,期望它仅适用于 80... 错误消失了,但现在无法正常工作(我使用 80295555555 80-29-555-55-55 80 33 555 55 55) ...

我也试过这个:

我该怎么做才能得到预期的结果?

0 投票
1 回答
165 浏览

angular - 角度异步验证器检查数据库中输入的唯一性

我有一个<input>用户输入一个在数据库中应该是唯一的值的地方。我想在前端动态检查该值是否唯一。

如果值已经存储在数据库中,我还想显示一条错误消息。

0 投票
1 回答
66 浏览

angular - 带有 http 的 Angular 自定义验证器不起作用

我尝试制作一个自定义验证器来验证我的数据库中是否存在序列号。为此,自定义验证器必须调用 api 端点。这是我的自定义验证器

在我的组件中,我像这样调用验证器

在我的模板中我有这个

我不明白为什么我的连续剧总是被认为是未知的。对 Angular 初学者有什么想法吗?预先感谢您的帮助。

0 投票
1 回答
480 浏览

angular - 自定义验证器 FormGroup 的 Angular 单元测试

如何对(Jest此处)自定义验证器进行单元测试,其中有FormGroup?我见过这个问题,但它是关于FormControl

要测试的功能。