2017-09-26 3 views
2

Apache Trinidadを使用したJSF 1.1のプロジェクトでは、いくつかの動的h:commandLinkを作成する必要があり、ロード時にクリックするにはJSによってアクセスする必要があります。idにidを設定するにはどうすればいいですか?:commandLinkをc:forEachから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をしているのは次のとおりです。:

私は何を持っていることは、これはjsのためにある

<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とのcommandLink作成するとき:forEachの、使用して動的IDはで終わります。タグファイルのTLDまたは属性ディレクティブによれば、属性 "[id]"は式を受け入れません。

その他のソリューションr c:forEachまたはui:repeatは、異なるparamsを持つcommandLinkを作成することを意味し、idを持たないことを意味しますが、JSは私が知る限り、これらのオブジェクトにアクセスする別の方法がないため、IDが必要です。

+0

:繰り返し、あなたは自動的にインデックスとIDを取得します

<h:commandLink styleClass="buttonCard_#{index.index}" 

をとすることにより、各ボタンを取得それに後置されて... – Kukeltje

+0

どのように私はそのIDをjavascriptからそれにアクセスするために知ることができますか? –

+0

それはすべてhtmlであると考えてください...どうすればjavascriptのhtml要素の属性を読み取ることができますか?非常に一般的な「googleable」という質問 – Kukeltje

答えて

0

あなたが代わりにCSSクラスセレクタを使用することができます:あなたはUIを使用している場合

document.getElementsByClassName("buttonCard_"+i) 
+0

c:forEachの "end"タグがEL式を受け入れないので、おそらくこれは役に立ちませんでした。これは有効な解決策でした。 –

関連する問題