如何在模态弹出的YES按钮上获得Y键的onkeydown事件

时间:2015-07-28 04:52:15

标签: jquery jsf

我的方案是使用YES和NO Button显示模式弹出窗口。 单击是按钮或按" Y"它应该执行所需的操作,类似于No按钮。

Main.xhtml

    <rich:popupPanel id="popupOne" modal="true" show="#{demoBean.isTrue}">
    <a4j:outputPanel id="popupTwo" >
      <ui:include id="modalPopUp" src="/MyXhtml.xhtml">
      </ui:include>
    </a4j:outputPanel>
    </rich:popupPanel>

MyXhtml.xhtml

    <a4j:outputPanel id="panelForYes" >
    <h:outputText id="errorMsg" name="errorMsg"  class="pop_outputText" value="#{demoBean.messages}" />
                    <a4j:commandButton id ="btnOne" 
                                       action="#{demoBean.yesAction}" 
                                       value="YES" 
                                       oncomplete="closePOPUP()">   
                    </a4j:commandButton>
    </a4j:outputPanel>


    <a4j:outputPanel id="panelForNo" >
                    <a4j:commandButton id ="btnTwo" 
                                       action="#{demoBean.noAction}" 
                                       value="No" 
                                       oncomplete="closePOPUP()">   
                    </a4j:commandButton>
    </a4j:outputPanel>

jquery函数

jQuery(document).keydown(function (e) {
    if (document.activeElement.tagName == "INPUT") {
        // do nothing
    } else {
        if (e.which == 89) {
            document.getElementById('btnOne').click();
        }
        if (e.which == 78) {
            document.getElementById('btnTwo').click();
        }

    }
});

现在问题是我无法绑定&#34; Y&#34;弹出模态弹出按钮的按键事件。

以上jquery运行良好,但即使模型弹出也没有出现,&#34; Y&#34;按键事件如果按下则调用我的动作。如何防止这个场景?如何附加&#34; Y&#34;仅弹出模式弹出的事件到YES按钮?

1 个答案:

答案 0 :(得分:0)

将您的代码which更改为keycode

 jQuery(document).keydown(function (e) {
     if (document.activeElement.tagName == "INPUT") {
         // do nothing
     } else {
         if (e.keyCode == 89) {
             document.getElementById('btnOne').click();
         }
         if (e.keyCode == 78) {
             document.getElementById('btnTwo').click();
         }

     }
 });
  

这是Jsfiddle