如何从PrimeFaces中的Javascript调用bean方法?
我有以下menuItem:
<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>
如果我点击用户界面上的消息对象,我可以看到傻瓜的警告消息。
但是,我从未看到toggleAlarms.click()方法调用alarmsBean.toggleAlertOff()调用。
我做错了吗?
答案 0 :(得分:2)
#{navigationBean.admin}
何时返回false
?
因为如果是这样你就无法在DOM中找到它......(也许最好使用style=display:none
)
另外,如果menuitem位于表单内,则您的选择器可能出错,请在网页上执行<{1}} 查看源以查看menuitem的正确ID
最后尝试使用commandButton(不确定menuitem是否会按预期响应jQuery('#someFormID\\:toggleAlarms').click();
)
<强>更新强>
为了检查您的jquery选择器是否正确使用.click()
而不是alert($('#toggleAlarms').length)