2013-09-17 6 views
1

, например, я пыталсяс использованием A4J, как мне переписать функцию javascript и называть его после рендеринга?

<a4j:region id="scriptSuggested" > 
<f:verbatim> 
<script> 
    reallyUpdateIt = function() { 
     // javascript code that changes after aj4 ajax call is triggered 
     } 
    </script> 
    </f:verbatim> 
    <a4j:jsFunction reRender="scriptSuggested" ignoreDupResponses="true" ajaxSingle="true" name="updateSuggestionValues" action="#{bean.action}" oncomplete="reallyUpdateIt();"> 
     <a4j:actionparam name="userInput" assignTo="#{bean.input}" /> 
    </a4j:jsFunction> 
</a4j:region> 

Я хотел бы ожидать, что вызов функции яваскрипта

updateSuggestionValues('val'); 

собирается сделать действие

#{bean.action} 

и после того, что он будет засавить в регионе scriptSuggested и, наконец, позвонить по телефону reallyUpdateIt(),

все работы, за исключением части обновления кода reallyUpdateIt(), я проверил ответ ajax с помощью firebug, и он поставляется с ожидаемым новым кодом javascript, но когда я вызываю reallyUpdateIt(), запускается старый код.

Я использую JSF 1.2, RichFaces 3.3.3,

ответ

1

получается, используя <a4j:region id="scriptSuggested" > не создает раздел HTML, который может a4j засавить, я должен был использовать <a4j:outputPanel>, так что теперь он обновляет функцию, мой код теперь выглядит так:

<a4j:region > 
<a4j:outputPanel id="scriptSuggested"> 
<f:verbatim> 
<script> 
    reallyUpdateIt = function() { 
     // javascript code that changes after aj4 ajax call is triggered 
     } 
    </script> 
    </f:verbatim> 
    <a4j:jsFunction reRender="scriptSuggested" ignoreDupResponses="true" ajaxSingle="true" name="updateSuggestionValues" action="#{bean.action}" oncomplete="reallyUpdateIt();"> 
     <a4j:actionparam name="userInput" assignTo="#{bean.input}" /> 
    </a4j:jsFunction> 
</a4j:outputPanel> 
</a4j:region> 

 Смежные вопросы

  • Нет связанных вопросов^_^