首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在表单reRender后重新执行javascript函数?

如何在表单reRender后重新执行javascript函数?
EN

Stack Overflow用户
提问于 2012-10-26 13:18:45
回答 2查看 29.2K关注 0票数 17

在表单重新渲染之后,我需要重新执行javascript。简单地说,将javascript放在XHTML内容之后是没有帮助的,因为它是部分请求。此外,我不能使用“JSF”,因为我要重新呈现表单的commandButton是在多个地方使用的onComplete组件。我需要在本地解决这个问题。

有什么办法吗?我想知道f:ajax在这种情况下是否会有所帮助。

如果有人知道这件事,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-26 18:54:09

最简单的方法是将JS函数调用放在要更新的组件本身中。

代码语言:javascript
复制
<h:form>
    ...
    <h:commandButton value="submit"><f:ajax render="@form" /></h:commandButton>
    <h:outputScript>someFunction();</h:outputScript>
</h:form>

这样,它就会在页面加载时执行,也会在ajax更新表单时执行。

至于<f:ajax>本身,您也可以使用它的onevent属性。

代码语言:javascript
复制
<f:ajax ... onevent="handleAjax" />

使用

代码语言:javascript
复制
function handleAjax(data) {
    var status = data.status;

    switch(status) {
        case "begin":
            // This is invoked right before ajax request is sent.
            break;

        case "complete":
            // This is invoked right after ajax response is returned.
            break;

        case "success":
            // This is invoked right after successful processing of ajax response and update of HTML DOM.
            someFunction();
            break;
    }
}

您可以通过jsf.ajax.addOnEvent()添加一个全局钩子,这样如果功能需求适用于每个ajax请求,则不需要在<f:ajax>的每个单独的onevent属性中指定它。

代码语言:javascript
复制
jsf.ajax.addOnEvent(handleAjax);

另一种方法是使用提供的OmniFaces JSF utility library来实现这一目的。你可以把它放在你想要的头上。

代码语言:javascript
复制
<h:onloadScript>someFunction();</h:onloadScript>

对于视图上的每个ajax请求,它都会自动重新执行,这样您就不需要将它复制到视图中可以由ajax更新的多个单独位置上,也不需要在每个<f:ajax render>中重复其父ID。

票数 40
EN

Stack Overflow用户

发布于 2012-10-26 15:20:06

您可以将jQuery添加到您的应用程序中,并执行以下操作:

代码语言:javascript
复制
$(#yourComponentId).load(function(){
   //execute javascript.
});

你可以在这里看看http://api.jquery.com/load/

乐:那是开着的

代码语言:javascript
复制
$(document).ready(function(){
}

ofc。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13081129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档