验证 – 根据复选框值有条件地进行所需的输入

前端之家收集整理的这篇文章主要介绍了验证 – 根据复选框值有条件地进行所需的输入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的JSF页面上,我有一个HTML输入复选框,允许用户选择是否需要礼物,以及< div>只有选中复选框,才会显示复选框信息下的部分.选中复选框后,用户将需要选择一个选项(从下拉菜单中,下拉菜单的初始值= null);但是,如果未选中该复选框,则不需要选择.

所以,有两个条件:

A.选中复选框(= =播放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}" />

即使未选中该复选框,提交也会失败,似乎布尔检查永远不会更改.谁知道为什么?

解决方法

只需选中菜单的必需属性,即可选中复选框.您可以通过绑定属性将物理复选框组件绑定到视图来实现,这将使其最终位于UIInput实例中,而UIInput实例又使getValue()方法返回提交/转换/验证的值.
<h:selectBooleanCheckBox binding="#{checkBox}" ... />
<h:selectOneMenu ... required="#{checkBox.value}" />

(注意:代码是完整的,你不需要将它绑定到bean属性!)

请注意,这并不是您明确要求的严格“有条件地显示消息”.它只是根据需要有条件地验证输入.消息是否被显示仅仅是结果.

也可以看看:

> How does the ‘binding’ attribute work in JSF? When and how should it be used?

更新:根据您尝试检查< h:selectBooleanCheckBox值>相反,这将不起作用,因为此值仅在更新模型值阶段期间更新,该阶段是在要检查所需属性的验证阶段之后.

猜你在找的HTML相关文章