2012-07-23 86 views
1

如何在PrimeFaces中使用JavaScript調用Bean方法?如何在PrimeFaces中使用JavaScript調用Bean方法

我有以下的菜單項:

<p:menuitem id="toggleAlarms" icon="ui-icon-cancel" rendered="#{navigationBean.admin}" value="Cancel Alert" update=":alarmMessages" action="#{alarmsBean.toggleAlertOff()}"/> 

當我點擊UI中的方法,該項目被調用。

但是,當我有這樣的元素:

<p:messages id="alarmMessages"> 
    <script> 
    jQuery('#alarmMessages').effect("pulsate", {times:5}, 1000); 
    jQuery('#alarmMessages').show(); 
    $('#alarmMessages').click(function() { 
     jQuery('#toggleAlarms').click(); 
     alert('fool'); 
    }) 
    </script> 
</p:messages> 

如果我點擊郵件上的UI對象,我可以看到它傻瓜警報消息。

但是,我從來沒有看到toggleAlarms.click()方法調用alarmsBean.toggleAlertOff()調用。

我做錯了什麼?

+0

使用權alert($('#toggleAlarms').length)當你「查看源文件」所呈現的頁面上,什麼是郵件組件的ID?是「toggleAlarms」還是其他東西,例如「形式:toggleAlarms」?有可能您沒有傳遞正確的組件ID。 – BestPractices 2012-07-23 20:30:50

回答

2

#{navigationBean.admin}返回false的任何機會?

因爲如果這樣你就不會成爲能夠找到它在DOM ...(也許更好地利用style=display:none

也,你的選擇可能是錯誤的,如果菜單項是內部形狀嘗試jQuery('#someFormID\\:toggleAlarms').click();查看源代碼您的網頁上看到菜單項的權限ID

終於嘗試的commandButton相同,而不是(不知道菜單項將響應按預期.click()

更新

,以檢查你的jQuery選擇是不是alert('fool');

+0

嗨,謝謝你的迴應。到目前爲止,管理員總是如此。 – jrobertsz66 2012-07-23 20:19:28

+0

更新了一下我的答案... – Daniel 2012-07-23 20:23:23

+0

好吧,它根據信息修改後,就像一個魅力。你提供。非常感謝!這是我做的: 修改的菜單項: 這: jQuery的( '#alarmMessages')效應( 「跳動」,{倍: 5},1000); jQuery('#alarmMessages')。show(); $('#alarmMessages')。click(function(){ jQuery('#menuF \\:toggleAlarms')。click(); }) – jrobertsz66 2012-07-23 21:35:01

相關問題