从ui获取对CheckBox的引用:在JavaScript代码中重复

时间:2016-08-31 21:41:54

标签: jsf uirepeat

我在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

的ID

代码依赖于从数据库中获取值的列表,它包含3个项目(数据库仅包含3个记录)

我想要做的是获取对这3个项目之一的引用,以便我可以根据特定条件使用JavaScript隐藏它。我知道如何使用JavaScript使用它来隐藏UI元素的id,我的问题是id是动态生成的,所以我不可能用它来隐藏复选框

那么有没有办法在JavaScript代码中获得对此复选框的引用?或者有没有办法隐藏这个复选框而不需要它的id?

1 个答案:

答案 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();