我在表中具有相同groupName的单选按钮。 在不使用CCJS的情况下提交表单时,是否有相对简单的方法来验证此字段?
<xp:td>
<xp:radio id="radio120" groupName="R_1" value="#{document1.R_1}" selectedValue="1"></xp:radio>
</xp:td>
<xp:td>
<xp:radio id="radio120" groupName="R_1" value="#{document1.R_1}" selectedValue="2"></xp:radio>
</xp:td>
使用常规的单选按钮组控件,我使用带有errorMessage控件的validateRequired来显示消息。
<xp:radioGroup styleClass="A2" style="border:0px;" value="#{document1.Necktie}" layout="pageDirection" id="Necktie">
<xp:this.validators>
<xp:validateRequired message="REQUIRED!"></xp:validateRequired>
</xp:this.validators>
<xp:selectItem itemLabel="No" id="selectItem13"></xp:selectItem>
<xp:selectItem itemLabel="Yes" id="selectItem14"></xp:selectItem>
</xp:radioGroup>
<xp:message id="message10" for="Necktie"></xp:message>
答案 0 :(得分:0)
足够公平......在这种情况下,除了对CSJS做某事外,我不太确定......
不确定这是否会有所帮助,但请看Marky Roden的这篇文章: https://xomino.com/2012/03/10/checking-xpages-radio-buttons-have-been-selected-with-jquery/
由于年终结束,我没有在4/5周内进行任何开发工作,所以我的大脑并不像它应该的那样......
答案 1 :(得分:0)
使用服务器端的数据源document1查看是否选择了其中一个单选按钮
测试document1.getItemValueString("R_1")
。如果为空,则设置错误消息并返回false。否则保存文件。
<xp:button value="Save" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:
if (document1.getItemValueString("R_1") == "") {
facesContext.addMessage(null,
new javax.faces.application.FacesMessage("select a radio"));
return false;
}
document1.save();
}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:messages id="messages1" />