如何在PrimeFaces中使用JavaScript调用Bean方法

问题描述:

如何在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

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