在Primefaces中使用带p:hotkey和p:commandButton的处理程序

时间:2013-11-09 11:54:56

标签: jsf primefaces hotkeys

好吧,我有一个像这样的commandButton:

   <p:commandButton value="Novo" id="commandButtonCadastrar" widgetVar="varCommandButtonNovo" oncomplete="varDialogManterEndereco.show()" actionListener="#{enderecoMB.novo}" />

我有一个热键来模拟按钮点击,如下所示:

  <p:hotkey bind="alt+n" handler="varCommandButtonNovo.click()" />

但是当我在浏览器中使用“alt + n”时,没有任何反应。

3 个答案:

答案 0 :(得分:4)

您可以在大多数Primefaces组件的click属性上访问jq等jQuery方法。如果你改变你的代码

<p:hotkey bind="alt+n" handler="varCommandButtonNovo.jq.click()" /> 

它应该有用。

答案 1 :(得分:0)

此答案不依赖于 p:commandButton 。只需复制 p:hotkey 中的AJAX逻辑:

<p:hotkey bind="alt+n" actionListener="#{enderecoMB.novo}" oncomplete="varDialogManterEndereco.show()" />

答案 2 :(得分:0)

你可以这样做:

<p:remoteCommand name="remotecommand" process="@this"
                 action="#{mbname.method()}"
                 rendered="#{.......}"
                 update=":messageForm:growl" />             
<script type="text/javascript">
  //For Ctrl+Shift+F1
  $(window).keydown(function(event) {
    if(event.ctrlKey &amp;&amp; event.shiftKey &amp;&amp; event.keyCode == 112) { 
      remotecommand();
      event.preventDefault(); 
    } 
</script>