单击按钮“保存”,然后按下Enter键以关注焦点的InputText。现在我的另一个Dialog打开了。当InputText没有焦点时,按Enter键不会打开另一个对话框。为什么会这样?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<h:form>
<!-- BUTTONS -->
<p:commandButton
id="defineXmlButton"
value="define"
oncomplete="PF('dialogTxParams').show();"
update="dialogTxParams" />
<p:commandButton
id="openSaveChainDialogButton"
value="save"
ajax="true"
onclick="PF('saveChainDialog').show();"
/>
<!-- DIALOGS -->
<p:dialog header="Save Dialog" widgetVar="saveChainDialog"
id="saveChainDialog" modal="true" resizable="false"
closeOnEscape="true">
<h:panelGrid columns="3" cellpadding="5" cellspacing="0">
<p:outputLabel for="chainname">Name</p:outputLabel>
<p:inputText id="chainname" value=""></p:inputText>
<p:commandButton
id="saveChainButton"
value="OK"
actionListener="#{chainController.saveChain()}"
ajax="true"
oncomplete="PF('saveChainDialog').hide();"
update="saveChainDialog">
</p:commandButton>
</h:panelGrid>
</p:dialog>
<p:dialog
header="#{txWfSenderModel.selectedWf.description}"
id="dialogTxParams"
widgetVar="dialogTxParams"
modal="false"
resizable="false"
dynamic="true"
fitViewport="true"
closeOnEscape="true">
</p:dialog>
</h:form>
</h:body>
</html>
编辑:
Kukeltje引发了另一个问题,帮助我找到了解决方案。查看评论。我通过为每个对话框使用自己的<h:form>
标记来解决问题,因此默认按钮是正确的。