在我的 JSF 页面上,我有一个 HTML 输入复选框,允许用户选择他们是否想要礼物,并且<div>
只有在选中复选框时才会显示复选框信息下的部分。选中复选框后,用户将需要选择一个选项(从下拉菜单中,下拉菜单的初始值 = null);但是,如果未选中复选框,则不需要选择。
所以,这里有两个条件:
A. Checkbox 被选中(== div 视图被播放)
- 用户选择一个选项->好的
用户不要选择任何东西->我希望显示所需的消息,这就是我所做的:
<p:message style="margin: 10px" id="messages7" for="npsScoreSupport" /> <h:selectOneMenu id="npsScoreSupport" value="#{npsBean.supportScore}" required="true" requiredMessage="Please select an option"> <f:selectItems value="#{npsBean.ratingPickList}" /> </h:selectOneMenu>
B. 复选框未选中(== div 视图被隐藏)
- 用户不要选择任何东西-> 好的,但是页面仍然需要用户选择一个选项,因为我有 required="true"。
由于我需要 requireMessage 以确保在选中复选框时选择了一个选项,我想知道是否可以根据复选框的状态使 requireMessage 有条件?(选中复选框时需要,未选中时不需要)有什么建议吗?
============更新=======================
所以现在我更新了我的复选框并将它与 JAVA 类中的一个函数连接起来(布尔变量 check = true 作为默认值)
<h:selectBooleanCheckbox class="someClass" value="#{someBean.check}" />
这是我的选择器
<h:selectOneMenu id="OptSelector" value="#{someBean.Opt}" required="#{someBean.check}" requiredMessage="Please select and option">
<f:selectItems value="#{npsBean.OptPickList}" />
即使未选中复选框,提交也失败,布尔检查似乎永远不会改变。有谁知道为什么?