我正在尝试验证两个字段,一个是数字,另一个是 url。此字段中至少有一个必须具有有效值。如果 number 字段具有值并且它是有效的数字,或者如果 url 字段存在并且它是有效的 url,则验证通过。
我正在使用“requiredif”和“mask”来检查这一点。以下是号码检查的示例,
<field property="nombre"
depends="requiredif,mask">
<msg
name="mask"
key="errors.nombre"/>
<arg0 key="nombre"/>
<msg
name="requiredif"
key="errors.validateNombreUrl"/>
<arg0 key="nombre"/>
<var>
<var-name>mask</var-name>
<var-value>${nombre}</var-value>
</var>
<var>
<var-name>url</var-name>
<var-value>((url == null) and (*this* == null))</var-value>
</var>
</field>
以这种类似的方式,我也在检查 url 字段。但是我看到验证器验证了这两个字段并显示了错误,因此这两个字段都是必需的。如何将其作为 OR 条件?我不确定 var 值中的表达式是否适合 requiredif,因为我发现它仅适用于 validwhen(由于版本问题我无法使用)。如何在 OR 条件下验证这两个字段?