2010-12-27 4 views
0

각 텍스트 필드에 onChange = "submit();"이 있습니다. 즉시 데이터를 저장하십시오. 내가 가지고있는 문제는 그것이 제출하고 페이지 제출로 인해 필드에 초점을 잃기 때문에 다음 필드로 이동하는 것이 효과가 없다는 것입니다. 또한 사용자가 다음 텍스트 필드를 클릭하여 편집하려는 경우 포커스를 잃게되고 페이지 제출로 인해 두 번째 클릭해야합니다. 페이지를 제출 한 후에 의도 한 텍스트 필드에 포커스를 설정할 수 있도록이 문제를 해결할 수 있습니까?JSF 텍스트 필드 onchange 제출 tabbing

배경 :

나는 이러한 여러 필드를 통해 채워되는 동적 테이블이 있습니다. 사용자는 드롭 다운 목록에서 값을 선택한 다음 "새로 만들기"버튼을 클릭하면 선택한 값에 해당하는 모든 필드가 나타납니다. 모든 입력 데이터의 복잡성으로 인해 페이지의 혼란을 줄이기 위해 각 텍스트 필드에 제출 버튼 대신 onChange를 전송하도록 결정했습니다. 게다가 테이블과 다른 모든 것들이 자동으로 업데이트된다는 것이 차갑게 보입니다.

감사합니다.

답변

2

문제는 제출 한 다음 페이지 제출로 인해 필드에 초점을 잃기 때문에 다음 필드로 이동하는 것이 작동하지 않는다는 것입니다.

예, onchange 이벤트를 트리거 할 때마다 양식이 제출되고 JSF 수명주기가 끝나면 페이지가 다시 렌더링되고 초점을 잃게됩니다.

여러 입력 테스트가 있고 동적으로 테이블을 다시 렌더링하려는 것처럼 들리네. 왜 아약스로 다른 접근법을 시도하지 않습니까? 먼저 ajax로 입력 필드를 처리 한 다음 테이블을 동적으로 다시 렌더링하십시오.

예 :

<h:inputText id="input" value="#{mybean.input}" > 
    <a4j:support 
     event="onchange" 
     ajaxSingle="true" 
     action="#{mybean.doSomething()}" 
     reRender="myTable" /> 
</h:inputText> 
관련 문제