问题标签 [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.
angular - 表单组上的角度自定义交叉字段验证无法按预期的日期字段工作
我有一个带有开始日期和结束日期的表格。开始日期应该是从第二天开始,结束日期应该是从开始后至少 7 天。我正在使用 Angular 材料日期选择器并为这两个字段设置 minDate 值。我在 FormGroup 级别有一个自定义验证器,用于验证 7 天逻辑并在验证失败时显示 End Date 字段的错误消息。
如果我为结束日期手动输入较旧的日期,验证工作正常并显示错误消息。但是,如果我将开始日期更改为将来的日期,然后选择结束日期以使验证失败,则不会显示错误消息。基本上,仅当日期早于最初设置的 minDate 值时才会显示错误消息。对于结束日期大于 minDate 的任何验证失败,不会显示错误。
我的 HTML 代码 -
我的 TS 文件 -
validateEndDate 是验证开始和结束日期的自定义验证器
{ validators: validateEndDate('startDate', 'endDate') });
这是显示错误的代码 -
我不确定为什么仅当日期小于 minDate 值时才显示错误,而不是所有验证错误。
angular - 自定义验证器在 Angular 10 的 FormGroup 中不起作用
在我的反应形式中,我有两个密码字段。两个匹配两个字段的值我创建了一个自定义验证器,然后在 ts 文件的表单组中分配该验证器。代码如下:
必须匹配验证器代码:
但 MustMatch 显示错误如下:
'{验证器类型的参数:(formGroup:FormGroup)=> void; }' 不可分配给类型为 'ValidatorFn | 的参数 验证器Fn[] | 抽象控制选项'。对象字面量只能指定已知属性,而 'validator' 类型中不存在 'ValidatorFn | 验证器Fn[] | 抽象控制选项'。
由于我是角度新手,任何人都可以帮我解决这个问题。
angular - 带有参数的自定义验证器不适用于角度中的文本框和复选框
在我的反应形式中,我有一个文本框和一个复选框。我希望在选中复选框时,文本框可以为空或为空。如果未选中复选框,则应显示所需值的验证消息。所以我写了一个带参数的自定义验证器。但是验证器不工作表单代码如下:
ts文件代码为:
自定义验证器是:
谁能让我知道问题出在哪里?请按照以下链接获取可行的示例。
angular - 当 FormGroup 出现新错误时,Angular Reactive 表单不更新
所以我在 ngOnInit() 中声明了我的 FormGroup 并调用了我的验证器函数来确保密码和确认密码字段是匹配的
我的打字稿
所有字段也都有自己的 getter 方法,除了一件事外一切正常。我的确认密码字段似乎永远不会识别密码不匹配时满足的条件,如果该字段中没有任何内容,他们会抱怨因为它是必需的,但是一旦我在输入中添加一个值,错误消息就会消失并且它不会像它应该那样触发第二个跨度。
我的html
angular - 以 HHH:MM 格式输入小时的 Angular 自定义验证器
我需要在几小时和几分钟内验证输入,但它是 HHH:MM 中 6 个字符的奇怪格式。例如,需要在输入中输入30 小时和 15 分钟,例如030:15
下面是我创建自定义验证器的尝试,但我需要一些帮助才能让正则表达式比较输入的小时数在 0-70 和分钟之间为 00-59。
angular - FormControl.Validators.pattern 无法正常工作,而具有相同字符串的正则表达式显示数据匹配
我正在尝试为电话号码创建模式,我希望看起来像这样:
- +375 29 555 55 55
- 80-33-555-555-55
- +375-25-555-55-55
- 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) ...
我也试过这个:
我该怎么做才能得到预期的结果?
angular - 角度异步验证器检查数据库中输入的唯一性
我有一个<input>
用户输入一个在数据库中应该是唯一的值的地方。我想在前端动态检查该值是否唯一。
如果值已经存储在数据库中,我还想显示一条错误消息。
angular - 带有 http 的 Angular 自定义验证器不起作用
我尝试制作一个自定义验证器来验证我的数据库中是否存在序列号。为此,自定义验证器必须调用 api 端点。这是我的自定义验证器
在我的组件中,我像这样调用验证器
在我的模板中我有这个
我不明白为什么我的连续剧总是被认为是未知的。对 Angular 初学者有什么想法吗?预先感谢您的帮助。
angular - 自定义验证器 FormGroup 的 Angular 单元测试
如何对(Jest
此处)自定义验证器进行单元测试,其中有FormGroup
?我见过这个问题,但它是关于FormControl
。
要测试的功能。