如果自定义模板验证器有同名的输入属性时,各验证器的行为是什么

Posted sagaminosakura

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果自定义模板验证器有同名的输入属性时,各验证器的行为是什么相关的知识,希望对你有一定的参考价值。

最近由于工作需要,使用了自定义模板验证器。其中有两个自定义验证器分别定义了一个同名的输入属性,导致两个验证器的验证逻辑出现了问题。经过实验,自己总结问题的原因和同名输入属性的适用规则如下。

1 同名输入属性根据DOM的顺序适用于所有包含该名输入属性的所有验证器。

   假设两个自定义验证器custom1和custom2,都包含prop输入属性。

   <input ngModel text=‘test‘ name=‘age‘ custom1 [prop]=‘"abc"‘ custom2 [prop]=‘"def"‘>

   对于上面的这个输入框,验证器custom1和custom2的输入属性prop的值都将是"abc"。

2 输入属性出现的位置可以在被验证元素内的任何位置,不一定非要紧跟验证器名。

  <input ngModel text=‘test‘ name=‘age‘ custom1 [prop]=‘"abc"‘ custom2 [prop]=‘"def"‘>和

  <input ngModel text=‘test‘ name=‘age‘ [prop]=‘"abc"‘ custom1 custom2 [prop]=‘"def"‘>效果相同。

以上是关于如果自定义模板验证器有同名的输入属性时,各验证器的行为是什么的主要内容,如果未能解决你的问题,请参考以下文章

Acumatica:触发器在另一个自定义按钮上保存验证

如何在模板驱动的表单中为 ngModelGroup 添加自定义验证

Symfony 验证 - 在自定义验证行为中设置属性路径

使用占位符和错误验证为 CreateView 和 UpdateView 制作自定义模板

ASP.NET 4.5 自定义验证属性。 IsValid() 调用太晚了

SpringBoot Security 整合thymeleaf模板自定义登录页面,按需提示错误信息