Validation Xpages条件验证:仅当报告作为最终报告提交时,才设置必填字段
正在执行服务器端Xpages条件验证 我只希望在Report.Status字段为'Final'时启动以下验证。(允许用户以草稿形式提交报告,稍后返回并完成报告,当用户以草稿形式提交报告时,我们不希望将字段设为必填字段。) 我该怎么办Validation Xpages条件验证:仅当报告作为最终报告提交时,才设置必填字段,validation,xpages,Validation,Xpages,正在执行服务器端Xpages条件验证 我只希望在Report.Status字段为'Final'时启动以下验证。(允许用户以草稿形式提交报告,稍后返回并完成报告,当用户以草稿形式提交报告时,我们不希望将字段设为必填字段。) 我该怎么办 <xp:inputTextarea style="width:75%" value="#{Report.Agenda}" id="Agenda"> <xp:this.validator
<xp:inputTextarea style="width:75%" value="#{Report.Agenda}" id="Agenda">
<xp:this.validators>
<xp:validateRequired
message="Question 1 can't be blank">
</xp:validateRequired><!-- (1) -->
</xp:this.validators>
</xp:inputTextarea>
尝试此操作后,无效,即使“状态”字段未设置为“最终”,仍需要:{
<xp:inputTextarea style="width:75%" value="#{Report.Agenda}" id="Agenda" defaultValue="5 year agenda">
<xp:this.validators>
<xp:validateRequired message="Question 1 can't be blank"></xp:validateRequired><!-- (1) -->
<xp:validateExpression message="Question 1 can't be blank">
<xp:this.expression><![CDATA[#{javascript:
if (Report.getItemValueString('Status')!='Final') {
return true;
}
else {
return false;
}
}]]></xp:this.expression>
</xp:validateExpression>
</xp:this.validators>
</xp:inputTextarea>
如果字段“Status”不是“Final”,则在带有属性的submit按钮中禁用整个XPage的验证
禁用验证程序
:
var status=getComponent('comboBoxStatus')。getSubmittedValue();
如果(!status | | status!='Final'){返回true;}返回false;
第一行代码确定验证阶段状态控件(如组合框)的当前值(否则为空)。如果状态控件为“最终”,则第二行返回false(=不禁用验证器),否则返回true(=忽略所有验证器)
这样,只有当状态为“Final”时,XPage中的所有验证器才会执行
这是一个工作示例:
请注意,使用disableClientSideValidation=“true”
如果您只想在XPage中禁用某些元素的验证,请仅在这些元素上设置属性“disableValidators”。美妙的事情,如此简单,而且都在一个地方!一定会喜欢它!感谢Knut!非常感谢!另外,请看一下如何禁用整个XPage的客户端验证。