【问题标题】:using A4J, how do I rerender a javascript function, and call it after rerendering?使用 A4J,如何重新渲染 javascript 函数,并在重新渲染后调用它?
【发布时间】:2013-09-22 10:16:52
【问题描述】:

例如,我试过了

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

【问题讨论】:

    标签: javascript jsf richfaces ajax4jsf


    【解决方案1】:

    原来使用 &lt;a4j:region id="scriptSuggested" &gt; 不会生成 A4J 可以重新渲染的 html 部分,我不得不使用 &lt;a4j:outputPanel&gt; ,所以现在它更新了函数,我的代码现在看起来像:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2012-02-03
      相关资源
      最近更新 更多