【发布时间】:2016-05-03 17:45:31
【问题描述】:
我有一个命令按钮,它在单击事件时使用 Javascript(通过设置隐藏的输入值)在支持 bean 中发送一些浏览器信息,然后使用该数据执行 AJAX 操作。隐藏的输入正确地获取了该数据(在浏览器的控制台中使用 jQuery 检查),但是当执行操作时,该数据不可用。如果我第二次单击命令按钮,则数据可用。我相信我必须在执行 AJAX 操作之前更新服务器端的隐藏输入值,但我不太确定如何实现。
我的代码:
// Javascript function
getClientSideData: function() {
var data = // some string containing browser info
$('[id$=hidClientSideData]').val(data);
}
// HTML
<p:commandButton id="btnOK" value="OK" action="#{backingBean.doBtnOK}" onclick="getClientSideData();" process="@(.pghiddenfields)"/>
<h:panelGroup id="pgHiddenFields" styleClass="pghiddenfields" >
<h:inputHidden id="hidClientSideData"
value="#{backingBean.clientSideData}" immediate="true" />
</h:panelGroup>
所以,我想将一些字符串从 Javascript 代码(客户端)发送到支持 bean,并在同一个按钮上的 ajax 操作中使用它。如何更改代码以在操作中获取该数据?
【问题讨论】:
标签: ajax jsf-2 primefaces hidden-field