2014-10-09 3 views
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> 의 내부에서 온다 : 여기에 예를 들어 한 두 필드의 코드는 명령 단추의 동작 수신기가 실행됩니까?

답변

0

이것은 일반적인 HTML 동작입니다. 일반적으로 현재 입력 요소에 대한 첫 번째 입력 유형 = "제출"이 enter 키에서 호출됩니다. 이 페이지의 전체 답변 : Default action to execute when pressing enter in a form

+0

안녕하세요. 안타깝게도 제안 된 솔루션 중 아무 것도 해결되지 않았습니다. JS에서 Enter 키를 캡처하거나 HTML에서 단추를 바꾸거나 숨겨진 첫 번째 단추 (예 : 숨김)를 추가하지 않았습니다. 제 생각에 여기서 문제는 첫 번째 입력이 제출되는 것이 아니라 다른 것이라고 생각합니다. 다른 해결 방법을 제안 할 수 있습니까? – Bubolina

+1

시도해 보셨습니까?

? Enter 키를 눌렀을 때 일어나는 일을 정의하기 위해 p : defaultCommand를 Button에 id와 함께 사용할 수 있습니다. – sQer

+0

간단한 해결책 : sQer