F:Ajax onerror 在侦听器之前调用

f:ajax onerror called before listener

本文关键字:调用 侦听器 Ajax onerror      更新时间:2023-09-26

我有一个简单的表单和一个非常简单的bean,它监听ajax事件。以下是一些代码:

<script type="text/javascript">
    function myfunction() {
         alert('error');
    }
</script>
<h:commandButton  id="someid" value="somevalue" >
   <f:ajax event="click" execute="someids" listener="#{MyBean.fireEvent}" onerror="myfunction()"  />    
</h:commandButton>

我在调试中使用 eclipse 来查看何时调用MyBean.fireEvent以及据我所知,它在执行onerror="myfunction()"后被调用。可能是什么原因呢?

我正在使用带有树脂的莫哈拉 2.0。

谢谢。

看起来像是格式问题,也许可以尝试:

<script type="text/javascript">
  function myfunction(error) {
     alert(error.description);
  }
</script>
<h:commandButton  id="someid" value="somevalue" >
  <f:ajax event="click" 
       execute="someids" 
       listener="#{MyBean.fireEvent}" 
       onerror="myfunction" />    
</h:commandButton>

onerror 属性必须指向函数名称本身,而不是函数的返回值。

所以,如果你更换

onerror="myfunction()" 

onerror="myfunction" 

然后它应该按预期工作。