2016-12-06 82 views
0

我有一个Primefaces选项卡视图,其中包含两个选项卡和一个带有一些字符串的inputHidden元素。在第一个选项卡上有一个commandButton,用于更改inputHidden元素的值。我想在useText JS函数中使用更改后的值,但我获得了隐藏字段的旧值。更新h:输入隐藏选项卡更改

更新我的隐藏字段后,它被更新,但第二个选项卡上的输出文本没有更新,我不明白,为什么。

<h:form id="formMain"> 
     ... 
    <p:tabView onTabChange="useText(#{bean.text});"> 
     <p:tab title="tab1"> 
      <p:commandButton value="Change" action="#{bean.doBtnChangeText}" update=":formMain:hidArray @(.textTest)" /> 
     </p:tab> 
     <p:tab title="tab2" > 
<h:outputText styleClass="textTest" value="#{bean.text}" /> 
     </p:tab> 
    </p:tabView> 
     ... 
<h:inputHidden id="hidText" value="#{bean.text}" immediate="true" /> 

</h:form> 

编辑:我在第二个选项卡上添加了一些输出文本来检查更新的值。我在命令按钮上更新了隐藏字段和输出文本。隐藏字段已更新,但输出文本不是。

+0

您是否尝试在命令按钮上使用'update'?请阅读http://www.primefaces.org/showcase/ui/ajax/basic.xhtml –

+0

我知道'update'是如何工作的。我更新了命令按钮上的隐藏字段,并更新了该字段,但当我单击第二个选项卡时,会出现旧值(添加一些输出文本以进行测试)。 – peterremec

回答

0

通过将id属性添加到h:outputText元素来解决该问题。

<h:outputText id="outText" styleClass="textTest" value="#{bean.text}" /> 
1

正如贾斯珀所说,你可以在你的命令按钮上尝试update,或者尝试直接从bean上更新你的doBtnChangeText(),只需拨打即可。

+0

我的错误是,我更新了隐藏字段,但我没有发布那部分代码,对不起。更新我的问题。问题是即使更新隐藏字段旁边的元素,第二个选项卡上的输出文本也不会更新。 – peterremec