如何使用javascript获取jsf h:outputText值?

时间:2012-04-19 18:38:09

标签: javascript jsf-2 backing-beans

我有一个按钮有动作,可以设置myBackingBean.myString,并且onclick事件调用js方法来提醒该值。我只是想通过使用javascript从支持bean获取myString的值。

我有一个隐藏的输出,它有来自支持bean的值:

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

然后我需要在一个按钮触发的javascript fxn中提醒这个值:

function myFunction() {

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

...

}

但是我遇到Object required错误。我怎样才能解决这个问题? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

确保渲染h:outputText(render =“false”可能不会将其添加到DOM。如果它不呈现,则无法访问。如果需要隐藏它,请使用h:输入隐藏)。

然后确保它将HTML标记呈现为或像集合,其id属性为“myForm:myOutput”。

此外,.value javascript访问器用于输入标签,因此请使用inerHTML。

答案 1 :(得分:0)

您无需总是有一个隐藏字段来访问Bean属性。您可以按照以下方式执行此操作。

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

但是,如果您想要在单击按钮时更改“ myString ”的值,然后想要显示新值,则应使用<a4j:commandButton/>并使用 onComplete 属性如下。

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