2012-04-19 27 views
0

私は、ボタンにはmyBackingBean.myStringを設定できるアクションがあり、onclickイベントはその値を警告するjsメソッドを呼び出します。私は、javascriptを使ってbacking beanからmyStringの値を取得したいだけです。javascriptを使用してjsfを取得する方法h:outputTextの値?

私は豆をバックアップから値を持つ隠された出力を持っている:

function myFunction() { 

var outPut= document.getElementById("myForm:myOutput").value; 

... 

} 

が、私はObject requiredを得た。その後、私はボタンによってトリガはJavaScript FXNでこの値を警告する必要がある

h:outputText id="myOutput" rendered="false" value="#{myBackingBean.myString}" 

エラー。どうすればこの問題を解決できますか?ありがとうございます。

答えて

1

h:outputTextがレンダリングされていることを確認してください(rendered = "false"はDOMにそれを追加できないかもしれませんが、レンダリングしないとアクセスできません)。 :代わりにinputHidden)。

次に、id属性が "myForm:myOutput"のHTMLタグをレンダリングするか、またはそのように動作することを確認します。

また、入力タグには.valueのjavascriptアクセサが使用されるため、代わりにinerHTMLを使用してください。

+0

お返事ありがとうございます。詳細を教えてください。ボタンにはmyBackingBean.myStringを設定できるアクションがあり、onclickイベントはこのjsメソッドを呼び出します。私はちょうどバッキングbeanからmyStringの価値を得たいので、私はこの隠れた出力が助けることができると思った。 ouputTextをh:inputHidden id = "hidden1" value = "#{myBackingBean.myString}"に変更しましたが、同じエラーが発生しました。また変更されました。.innerHTMLに値が変更されませんでした – Celia

+0

生成されたHTMLを調べることはできますか?入力された型が隠れていて、それに必要な値があることを確認するだけですか? – Floydian

+0

要素を検査すると、この行があります。それはあなたが意味することですか? – Celia

0

Beanプロパティにアクセスするために、常に非表示フィールドを持つ必要はありません。あなたは以下のようにすることができます。

<h:commandButton value="Show" onclick="alert('#{myBackingBean.myString}');"/> 

しかし、あなたは、ボタンをクリックして、あなたが<a4j:commandButton/>を使用する必要があり、それは以下のようにonCompleteの属性の新しい値を表示したいとき「のmyString」の値を変更したい場合。

<a4j:commandButton value="Change" action="#{myBackingBean.changeString()}" oncomplete="alert('#{myBackingBean.myString}');" /> 
+0

ありがとうございます。私は2番目のものを試しましたが、値が更新されなかった隠された入力を再レンダリングします。今はクライアント側の値を更新することは不可能です。フェイスメッセージを表示するためにアラートを使用することは可能ですか?私はcontext.addMessage(FacesMessage.FACES_MESSAGES、メッセージ)を持っています。私の裏づけの豆の中で、私はこのメッセージに警告するためにjsを使うことができますか? – Celia

関連する問題