2015-02-23 3 views
3

У меня есть код jsf, который после javascript нажимает кнопки скрытой функции нажатия кнопки, которая выполняет запрос ajax и обновляет страницу. Но я хочу вызвать другую функцию javascript, когда ajax возвращает новые значения. Вот мой кодФункция Javascript javascript после обновления Ajax

<h:panelGrid styleClass="float-left" columns="2">             
          <h:outputText value="Хранилище ключей: " /> 
          <h:panelGroup> 
           <p:inputText value="#{SessionBean.getCurrentLocaleName(SessionBean.userProfileController.keySettingsForm.storage)}" onclick="$('#selectStorageB').click();" onchange="" readonly="true" style="cursor: text; width: 275px;" /> 
           <p:commandButton id="selectStorageB" style="display: none;" 
               actionListener="#{SessionBean.storageController.selectStorageForm.openSelectStorageDialog}"> 
            <p:ajax event="dialogReturn" update=":indexForm" process=":indexForm" immediate="true" 
              listener="#{SessionBean.userProfileController.keySettingsForm.onStorageChosen}" oncomplete="chooseStoragePath(#{SessionBean.userProfileController.keySettingsForm.storage.alias})" /> 
           </p:commandButton> 
           <p:commandButton icon="ui-icon-cancel" immediate="true" style="width: 18px; white-space: pre-wrap; margin-left: 5px" 
               actionListener="#{SessionBean.userProfileController.keySettingsForm.resetSigningStorageName()}" update=":indexForm"> 
           </p:commandButton> 
          </h:panelGroup> 
         </h:panelGrid> 

Моя проблема: функция javascript не видит новых значений.

+0

Вопрос является неполным, определяется до запуска события ajax. Таким образом, значение будет только более старым. то есть при каждом запросе ajax javascript будет вызываться со старшим значением. Поэтому я предлагаю вам взять скрытый компонент, чтобы получить новое значение. – Jitesh

+1

Jitesh, Танк за ваш ответ! – Makko

ответ

2

Поскольку вы используете Primefaces, вы можете вызвать функцию Javascript из вашего Action Method на вашем ManagedBean, используя метод 9 Primefaces execute.

String script = "chooseStoragePath('"+PATH_VAR+"')"; 
RequestContext.getCurrentInstance().execute(script); 
Смежные вопросы