我正在为文本字段使用自定义验证器。似乎自定义验证仅在执行所需验证后才有效。这意味着无法自定义验证没有 requiredValidator 的字段 - 是这样吗?我想做的事:
我有一个文本字段。只有选择了另一个字段中的特定值(这里是一个复选框组),才需要该值。这是一个依赖验证。在需要文本字段之前,我的自定义验证器可以正常工作 - 但情况并非如此。
复选框没有特定值 -> 文本字段可以为空白
复选框保存值 -> 文本字段必须有值。
有任何想法吗?
<xp:inputText id="inputText1" disableClientSideValidation="true">
</xp:inputText>
<xp:inputText id="inputText2" disableClientSideValidation="true">
<xp:this.validators>
<xp:customValidator message="err">
<xp:this.validate><![CDATA[#{javascript:if(getComponentValue("inputText1").length>0 && getComponentValue("inputText2").length==0) postValidationError(this, "foo")}]]></xp:this.validate>
</xp:customValidator>
</xp:this.validators>
</xp:inputText>
其中 getComponentValue 是一种从组件接收带有 getValue 或 getSubmittedValue 的值的方法,而 postValidationError 是一种添加面孔消息的方法。
编辑和最终答案
结论和示例:http: //mardou.dyndns.org/Privat/osnippets.nsf/id/OBUE-95BLK4