У меня есть командная кнопка, которая отправляет некоторую информацию о браузере в бэкэнд-бэк, используя Javascript (путем установки скрытого ввода) в событии клика, а затем выполняет действие AJAX с использованием этих данных. Скрытый ввод корректно обрабатывает данные (проверяется с помощью jQuery в консоли браузера), но когда действие выполняется, эти данные недоступны. Если я нажму на кнопку команды во второй раз, данные доступны. Я считаю, что перед выполнением AJAX я должен обновить скрытое значение ввода на стороне сервера, но я не совсем уверен, как этого добиться.Использование скрытого значения ввода в действии 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 (на стороне клиента) для каркасного компонента и использовать его в АЯКСЕ действия на ту же кнопку. Как я могу изменить свой код, чтобы получить эти данные в действии?