【发布时间】:2013-11-29 14:37:51
【问题描述】:
我正在尝试使用 a4j:ajax 方法触发 javascript 函数。我们正在从版本 3 迁移到版本 4,并且一直在升级 spring 和 JSF。以前,这很好用:
<a4j:support event="change" oncomplete="callJavascriptMethod()">
对于第 4 版 RichFaces,我正在尝试做同样的事情,每次更改下拉列表时调用一个 javascript 函数,但我已更改为使用:
<a4j:ajax event="change" oncomplete="callJavascriptMethod()">
我也尝试过类似的方法来查看是否触发了事件:
<h:commandButton id="test" value="Test me!">
<a4j:ajax event="click" oncomplete="console.log('something');" />
</h:commandButton>
到目前为止没有运气。有任何想法吗?
【问题讨论】:
-
不确定 RichFaces 在这里做什么,但为什么不直接使用
<a4j:commandButton>而不是<h:commandButton><a4j:ajax>? -
commandButton 示例只是为了检查 oncomplete 是否可以在那里工作。我实际上并没有在我的代码中使用它。 a4j:ajax 部分位于自定义代码表选择器内。这是为了在一个更简单的例子中验证我是否有同样的问题。
-
好的。你检查浏览器的 JS 控制台和 HTTP 流量监视器是否有线索?您很可能忘记将
<head>迁移到<h:head>,因此 RichFaces 无法自动包含必要的 JS 库。 -
不幸的是它仍在使用 ,我在 js 控制台或网络选项卡中找不到太多信息。我还使用 a4j:commandButton 进行了测试,如果我尝试从 onclick 方法触发 javascript 函数,它工作正常。只有 oncomplete 是行不通的。
-
@EspenS。 - 您是否在多个浏览器中验证过这种行为?