在Angular 5中定义表单验证器的错误方法是什么?

时间:2018-04-21 14:50:37

标签: angular angular-reactive-forms angular-validation

我正在以Angular应用程序的形式使用单独的控件验证器,它们完美地工作。现在,我想添加一个验证器来检查控件的值是否小于其他控件,我读到我必须将验证器应用于控件的父级(FormGroup本身)。

所以,我做了一些你可以在下面的stackblitz中看到的测试:

https://stackblitz.com/edit/angular-mts2gq

我确信sourcePortsValidatordestPortsValidator出了问题,因为它们没有按预期工作。例如,看一下这个截图:

enter image description here

控制台:

enter image description here

它表示start为20,end为120,比较start>endtrue。有点奇怪,不是吗?定义这些验证器的正确方法是什么?

提前致谢,

1 个答案:

答案 0 :(得分:1)

简短回答:

在HTML中,将源端口开始源端口输入框的类型更改为number。< / p>

答案很长:

text类型的输入将其值返回为string,因此start > end实际上将端口号比较为string(按字典顺序排列)。请参阅Why is one string greater than the other when comparing strings in JavaScript?