1

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() 呼び出しを呼び出すことはありません。

私は何か間違ったことをしていますか?

4

1 に答える 1

2

#{navigationBean.admin}戻る可能性はありますfalseか?

もしそうなら、DOMでそれを見つけることができません...(おそらくより良い使用style=display:none

また、メニュー項目がフォーム内にある場合、セレクターが間違っている可能性がありjQuery('#someFormID\\:toggleAlarms').click();ます。Web ページのソースを表示して、メニュー項目の正しい ID を確認してください。

最後に、代わりに commandButton を使用して同じことを試してください (menuitem が期待どおりに応答するかどうかはわかりません.click()) 。

アップデート

あなたのjqueryセレクターが正しいかどうかを確認するためalert($('#toggleAlarms').length)alert('fool');

于 2012-07-23T20:02:19.293 に答える