a4j:commandButton oncomplete javascript被忽略

时间:2011-04-01 11:52:47

标签: javascript richfaces ajax4jsf

我有这个片段:

  <h:form>
        <h:panelGrid columns="2" styleClass="modalYesNo">
            <a4j:region id="confirmActionReloadYes">
                <a4j:commandButton value="Yes" ajaxSingle="true"
                    action="#{MyBacking.reloadConfig}"
                    oncomplete="window.location.reload()"
                    reRender="blah" />
            </a4j:region>
            <a4j:commandButton value="No"
                onclick="#{rich:component('confirmActionReload')}.hide();return false;" />
        </h:panelGrid>
    </h:form>

我注意到当选择上面a4j:区域中的yes按钮时,一旦完成了支持bean方法reloadCongi(),就不会运行javascript window.location.reload()。为什么是这样?我还注意到reRender属性中的元素也没有reRendered。这是为什么?

修改的 从第一个评论到这个问题的方法是:

public void reloadConfig() {
    logger.info("Reloading config.");
    pct = pctBackup;
    feeds = pct.getFeed();
    setSysMsg("Reloaded config OK.", "ok");
}

我想也许我需要根据上面的内容将返回类型设置为true或false,看看是否有效。

1 个答案:

答案 0 :(得分:0)

某些插件可能会影响'oncomplete'事件的触发。 如果您没有选项,请开始禁用某些插件以查看其是否有效。 具体来说,我遇到了与Firefox 14.0.1和Firebug 1.7.3相同的问题。 一旦我禁用了Firebug,'oncomplete'再次起作用。