1

たとえば、私は試しました

<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>

JavaScript関数を呼び出すことを期待します

updateSuggestionValues('val');

アクションを実行します

#{bean.action}

その後、リージョンscriptSuggestedを再レンダリングし、最後に を呼び出しますreallyUpdateIt()

のコードを更新する部分を除いてすべて動作しreallyUpdateIt()ます。firebug を使用して ajax 応答を確認しました。期待される新しい JavaScript コードが付属していますが、を呼び出すreallyUpdateIt()と、古いコードがトリガーされます。

JSF 1.2、richfaces 3.3.3、

4

1 に答える 1

1

using<a4j:region id="scriptSuggested" >では、A4J が再レンダリングできる html セクションが生成されないことがわかりました <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>
于 2013-09-17T21:12:18.797 に答える