2012-07-05 11 views
0

我有一個簡單的窗體和一個非常簡單的bean,它監聽ajax事件。下面是一些代碼:f:在收聽者之前調用的ajax onerror

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

我使用調試日食時看到MyBean.fireEvent獲取調用而據我可以告訴執行onerror="myfunction()"後獲取調用。這可能是什麼原因?

我使用mojarra 2.0和Resin。

謝謝。

+0

想通了如何讓它工作。在myfunction()定義之上,我添加了'jsf.ajax.addOnError(myfunction);'並從ajax標籤中刪除了'onerror =「myfunction()」'屬性。我仍然好奇爲什麼onerror屬性不起作用。 – casolorz 2012-07-05 19:30:27

回答

4

貌似格式化的問題,也許嘗試:

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

onerror屬性必須指向函數名本身,而不是函數的返回值。

所以,如果你通過

onerror="myfunction" 

更換

onerror="myfunction()" 

則預期它應該工作。