如何将 id 从 c:forEach 设置为 id h:commandLink 以便 JS 访问?
How can I set an id to id h:commandLink from a c:forEach in order to be accesed by JS?
在一个带有 Apache Trinidad 的 JSF 1.1 项目中,我需要创建几个动态 h:commandLink,并且它们需要被 JS 访问才能被点击加载。
我有的是这个 js:
var cardsSize = window.document.getElementById("miForm:cardsSize").value;
for(var i = 0; i <= cardsSize; i++){
setTimeout(function(){
var buttonCard = window.document.getElementById("miForm:buttonCard_"+i);
buttonCard.click();
}, 1000);
}
我在 .jsp 中的内容是:
<c:forEach var = "i" begin="0" varStatus="index" end="#{pageFlowScope.cardsSize}">
<h:commandLink id="buttonCard_#{index.index}"
style="display:none"
action="#{confirmBacking.generateDocument}"
onclick="document.forms['miForm'].target='_blank';">
<f:setPropertyActionListener target="#{confirmBacking.indexCard}" value="#{index}" />
</h:commandLink>
</c:forEach>
问题是,当我使用 c:forEach 创建 commandLink 时,使用以 结尾的动态 ID 根据 TLD 或标记文件中的属性指令,属性“[id]”不接受任何表达式
c:forEach 或 ui:repeat 的其他解决方案创建多个具有不同参数的 commandLink 意味着没有和 id,但我需要 id,因为 JS 目前没有其他方法来访问这些对象据我所知。
您可以改用 css class 选择器:
<h:commandLink styleClass="buttonCard_#{index.index}"
并通过以下方式获取每个按钮:
document.getElementsByClassName("buttonCard_"+i)
在一个带有 Apache Trinidad 的 JSF 1.1 项目中,我需要创建几个动态 h:commandLink,并且它们需要被 JS 访问才能被点击加载。
我有的是这个 js:
var cardsSize = window.document.getElementById("miForm:cardsSize").value;
for(var i = 0; i <= cardsSize; i++){
setTimeout(function(){
var buttonCard = window.document.getElementById("miForm:buttonCard_"+i);
buttonCard.click();
}, 1000);
}
我在 .jsp 中的内容是:
<c:forEach var = "i" begin="0" varStatus="index" end="#{pageFlowScope.cardsSize}">
<h:commandLink id="buttonCard_#{index.index}"
style="display:none"
action="#{confirmBacking.generateDocument}"
onclick="document.forms['miForm'].target='_blank';">
<f:setPropertyActionListener target="#{confirmBacking.indexCard}" value="#{index}" />
</h:commandLink>
</c:forEach>
问题是,当我使用 c:forEach 创建 commandLink 时,使用以 结尾的动态 ID 根据 TLD 或标记文件中的属性指令,属性“[id]”不接受任何表达式
c:forEach 或 ui:repeat 的其他解决方案创建多个具有不同参数的 commandLink 意味着没有和 id,但我需要 id,因为 JS 目前没有其他方法来访问这些对象据我所知。
您可以改用 css class 选择器:
<h:commandLink styleClass="buttonCard_#{index.index}"
并通过以下方式获取每个按钮:
document.getElementsByClassName("buttonCard_"+i)