0
여러 단추가있는 양식과 "사용자 데이터 삭제"라는 링크가 있습니다. 링크를 클릭하면 조치가 취해지기 전에 확인 팝업이 표시됩니다. 다음은이 코드입니다 : 양식에서임의 양식 필드에서 Enter시 JSF commandButton 실행
<p:confirmDialog closable="false"
header="#{bundle['remove.user.data']}"
message="#{bundle['remove.user.data.text']}"
severity="alert" widgetVar="deleteUserPopup">
<h:commandButton
actionListener="#{userBean.deleteUserData}"
value="#{bundle['yes']}" immediate="true"
onclick="deleteUserPopup.hide()">
<f:attribute name="userId"
value="#{userBean.user.id}" />
<f:ajax execute="@this" render="@all" />
</h:commandButton>
<h:commandButton value="#{bundle['no']}"
onclick="deleteUserPopup.hide()" type="button" />
</p:confirmDialog>
<div>
<h:commandLink>
<h:outputText value="#{bundle['remove.user']}" />
<h:graphicImage name="remove.png" library="img"
title="#{bundle['remove.user']}" />
<f:ajax event="click"
onevent="deleteUserPopup.show()" />
</h:commandLink>
</div>
가, 나는 필드의 여지가 있지만, 문제가있는 텍스트 필드를 왜냐하면 사용자가 텍스트를 입력하고, 입력의 방법을 칠 때 deleteUserData
즉시 호출됩니다 (확인 팝업없이).
<div>
<h:panelGrid columns="2">
<h:column>
<h:inputText
value="#{userBean.user.lastName}" id="userLastName" />
<h:message for="userLastName" styleClass="warning" />
</h:column>
<h:column>
<h:inputText
value="#{userBean.user.firstName}" id="userFirstName" />
<h:message for="userFirstName" styleClass="warning" />
</h:column>
</h:panelGrid>
</div>
위의 코드의 모든
(2 div의 및 확인 대화 상자), 나에에게 입력 왜 그것을 얻을하지 않습니다 그래서<h:form>
의 내부에서 온다 : 여기에 예를 들어 한 두 필드의 코드는 명령 단추의 동작 수신기가 실행됩니까?
안녕하세요. 안타깝게도 제안 된 솔루션 중 아무 것도 해결되지 않았습니다. JS에서 Enter 키를 캡처하거나 HTML에서 단추를 바꾸거나 숨겨진 첫 번째 단추 (예 : 숨김)를 추가하지 않았습니다. 제 생각에 여기서 문제는 첫 번째 입력이 제출되는 것이 아니라 다른 것이라고 생각합니다. 다른 해결 방법을 제안 할 수 있습니까? – Bubolina
시도해 보셨습니까?
? Enter 키를 눌렀을 때 일어나는 일을 정의하기 위해 p : defaultCommand를 Button에 id와 함께 사용할 수 있습니다. – sQer간단한 해결책 : – sQer