我在JSF 2.0应用程序中有以下代码片段:
<ui:repeat var="applicantTypes" value="#{lookupHelper.applicantTypes}">
<h:selectBooleanCheckbox styleClass="applicantType"
value="#{requestBeanDtoProxyMB.requestInstance.subsidyRequest.
applicantTypesMap[applicantTypes.id]}">
</h:selectBooleanCheckbox>
</ui:repeat>
从数据库中获取列表applicantTypes
,HashMap applicantTypesMap
的数据类型为Map<long, boolean>
,其中键是来自applicantTypes
代码依赖于从数据库中获取值的列表,它包含3个项目(数据库仅包含3个记录)
我想要做的是获取对这3个项目之一的引用,以便我可以根据特定条件使用JavaScript隐藏它。我知道如何使用JavaScript使用它来隐藏UI元素的id,我的问题是id是动态生成的,所以我不可能用它来隐藏复选框
那么有没有办法在JavaScript代码中获得对此复选框的引用?或者有没有办法隐藏这个复选框而不需要它的id?
答案 0 :(得分:1)
我想要做的是获取对这3个项目之一的引用,以便我可以根据特定条件使用JavaScript隐藏它。
有许多方法可以使用JSF本身或javascript / JQuery来隐藏html元素!
JSF-Components有一个名为&#34;呈现&#34;的属性,如果符合您的需要,请使用它。
使用JavaScript / Jquery隐藏Element,您只需要向该Element添加一个样式类,然后使用JQuery类Selector来管理该元素(或者使用纯JavaScript执行该操作):
<ui:repeat var="applicantTypes" value="#{lookupHelper.applicantTypes}">
<h:selectBooleanCheckbox styleClass="applicantType SOME-CLASS#{applicantTypes.id}"
value="#{requestBeanDtoProxyMB.requestInstance.subsidyRequest.
applicantTypesMap[applicantTypes.id]}">
</h:selectBooleanCheckbox>
</ui:repeat>
看看这个styleClass="applicantType SOME-CLASS#{applicantTypes.id}"
这将打印(示例)...class="applicantType SOME-CLASS1"...
现在使用JQuery隐藏该元素:
$('.SOME-CLASS1').hide();