从 ui:repeat JavaScript 代码中获取对 CheckBox 的引用

Getting Reference To CheckBox From ui:repeat In JavaScript Code

我在 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是从数据库中获取的,HashMapapplicantTypesMap的数据类型是Map<long, boolean>,其中键是来自applicantTypes[=17的id =]

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

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

那么有没有办法在 JavaScript 代码中获取对此复选框的引用?或者有没有办法在不需要其 id 的情况下隐藏此复选框?

What I would like to do is get a reference to one of these 3 items so I can hide it using JavaScript based on a certain condition.

有很多方法可以使用 JSF 本身或 javascript/JQuery!

来隐藏 html 元素

JSF-Components 有一个名为 "rendered" 的属性,如果它符合您的需要,请使用它。

使用JavaScript/Jquery隐藏一个Element,只需要给那个Element添加一个style-class,然后用JQuery class 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();