2015-02-01 2 views
0

PrimeFaces 4.0에서 JSF2.1을 사용하고 놀랍게도 다른 필드가 이미 채워져 있으면 필드를 비활성화하는 간단한 해결책을 찾을 수 없습니다. 예 : "더하기 양"필드에 숫자를 입력하고 클릭하거나 탭을 사용하여 필드를 나가면 "빼기 양"필드를 비활성화해야합니다.하나의 입력 텍스트 변경시 다른 입력 텍스트 사용 안 함

내가 찾은 모든이

<p:inputText id="minusQty" disabled="#{not empty order.plusQty}"/> 
<p:inputText id="plusQty" value="#{order.plusQty}"> 
     <f:ajax update="minusQty" /> 
</p:inputText> 

같은 것을 할 것입니다하지만 난 같은 간단한 작업을 위해 서버를 호출하는 것이 조금 무거운 찾을 수 있습니다. 또한 맞춤 JS 코드를 추가하고 싶지 않습니다. 나는 JSF/PF에 내장 된 방법이 생각하지만 난 그것을 찾을 수 없습니다 ...

+0

서버를 호출하고 싶지 않다면 (대신 p : ajax를 사용해야하고 값 속성도 필요합니다.) 사용자 정의 JS 코드를 원합니다. 내기가 잘못되었습니다. –

+0

이것이 유일한 경우 가능성보다 더 좋아. 나는 다른 방법이있을 거라고 생각했습니다. 내장 된 jsf/PF 클라이언트 측 유효성 검사와 같은 것입니다. –

답변

2

하지만 같은 간단한 작업을 위해 서버를 호출하는 것이 조금 무거운 찾을

가정을하는 대신 측정하십시오.

나는 또한 그것은 단지 작업에 적합한 도구를 사용하여 아래로 비등 사용자 정의 JS 코드

를 추가하지 않습니다. 지금까지 살펴본 코드는 <p:ajax><f:ajax>이 혼재되어있는 것을 제외하고는 <f:ajax>update 속성을 지원하지 않습니다. 특히 비교적 큰 폼의 일부일 경우에만 <p:ajax partialSubmit="true">을 사용하여 요청 페이로드를 줄입니다.

궁극적으로 JS 방향으로 이동하겠습니까? 클라이언트 측에서 HTML DOM 요소를 활성화/비활성화해도 서버 측에서 JSF 구성 요소를 활성화/비활성화 할 수 없음을 명심하십시오. 즉, 순수 JS로 그렇게하면 해커는 여전히 값을 제출할 수 있습니다. 클라이언트 또는 서버 측에서 일부 작업을 수행 할 때는 항상이 점을 명심하십시오.