f:在监听器之前调用ajax onerror

时间:2012-07-05 19:13:52

标签: javascript ajax jsf jsf-2 mojarra

我有一个简单的表单和一个非常简单的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()"后被调用。可能是什么原因?

我正在使用带树脂的mojarra 2.0。

感谢。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

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

所以,如果你替换

onerror="myfunction()" 

通过

onerror="myfunction" 

然后它应该按预期工作。

相关问题