2011-06-23 3 views
1

onclickイベントでトリガされたときに異なるパラメータでJavaScript関数を呼び出すリンクをWebページに作成する必要があります。したがって、関数はパラメータを渡す必要があります。'onclick'属性を介して呼び出されるjavascript関数にパラメータを渡す

以下に示すコードでは、からcommandLinkに電話すると、wr()にパラメータを渡しています。私がをwr()の関数としてonclickに渡すと、コードがうまく実行されませんが、定数、つまりwr(4)を渡すと正常に実行されます。どのように私は正常にこのjavascript関数に可変パラメータを渡すことができますか?

  <h:form> 
       <ui:repeat value="#{bean.list}" var="i"> 
        <p:commandLink onclick="wr(i)" value="#{i}" /><br/> 
       </ui:repeat> 
      </h:form> 

      <p id="e">fd</p> 

      <script type="text/javascript" > 
       function wr(i){ 
        document.getElementById("e").innerHTML="this is "+i+ " !"; 
       } 
      </script> 

答えて

1

べきではないのonclick変数 'i' は#{I}の代わりに、単に 'I' を渡すを使用して評価する属性のためのマークアップ?

だから、次のようになります。

<ui:repeat value="#{bean.list}" var="i"> 
    <p:commandLink onclick="wr(#{i})" value="'#{i}'" /><br/> 
</ui:repeat> 

あなたは「私は」あなたのJS関数の内部で、あまりにもevalutingされるかを見るためにFireBugのようなものを使用したことがありますか?

編集:は単一で#{I}式「を囲む上記のマークアップを更新しましたが」あなたはこれを行う必要があり

+0

はい私は式が最終的だったことthorugh放火犯を見ました'onclick = "wr('#{i})"で 'wr(one ')' 'であるべき' onclick = "wr(#{i})" ) ' –

+0

大丈夫です - 引用符で囲んだ式を折り返すために私の答えを更新しました。 – toddk

0

あなたはthisを使用して要素の参照を渡す必要があります。ハードパラメータを渡すよりも柔軟性があります。

例:...onclick="wr(this)"...

、その後

function wr(elm){ 
    document.getElementById("e").innerHTML="this is "+ elm.value + " !"; 
} 
0

を引用:

<ui:repeat value="#{bean.list}" var="i"> 
    <p:commandLink onclick="wr('#{i}')" /><br/> 
</ui:repeat> 
関連する問題