我创建了一个标准的xp:comboBox并用公司列表填充它,所以组合框的值看起来像这样:
所以组合的初始值是 - 选择A公司 - 所以我尝试根据Mastering XPages第116页中给出的示例创建自定义验证器
<xp:this.validators>
<xp:customValidator>
<xp:this.validate><![CDATA[#{javascript:if (value == "- Select A Company -"){
return new javax.faces.application.FacesMessage("Select a Company from the List Provided.");
}}]]>
</xp:this.validate>
</xp:customValidator>
</xp:this.validators>
验证器似乎没有触发。我有几个其他简单的必需的firlds,他们都按预期工作。这是一个comboBox问题还是我错过了代码中的内容?
将此添加到输入框中,它也不起作用:
<xp:this.validators>
<xp:customValidator>
<xp:this.validate><![CDATA[#{javascript:if (value != "ABC"){
return new javax.faces.application.FacesMessage("Value Must be ABC.");
}}]]>
</xp:this.validate>
</xp:customValidator>
</xp:this.validators>
答案 0 :(得分:1)
只有在定义了必需的验证程序时才会触发自定义验证程序。 如果你想要一个&#34; required&#34;验证器被解雇你只需要添加另一个值为
的公式值项return "";
作为定义中的第一个值项目。