我的方案是使用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按钮?
答案 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