2013-06-19 1 views
0

안녕하세요, 저는 태피스트리 페이지에서 이상한 문제에 직면하고 있습니다.Tapestry5의 tml 페이지에 기본 포커스가 있습니다.

페이지에는 세 개의 필드가 있습니다.
1 - 선택 상자 ->의 tabindex 1과 t입니다 : = "필요한"
2 차 검증 - 텍스트 필드를 ->의 tabindex 2와 t입니다 : = "필요한"
3 확인 - 텍스트 필드를 ->의 tabindex는 3 t이다 : = "이 필요합니다"유효성을 검사

내 페이지가로드 기본 초점 2 텍스트 필드에 있지만됩니다

는 선택 상자에있을 수 있습니다.

내가 내 TML에 스크립트 아래 사용이 문제를 해결하기 위해이 탭 인덱스에 따라 페이지

<script type="text/javascript"> 
    Event.observe(window, 'load', function() {document.getElementById('id').focus();}); 
</script> 

안녕하세요. s가 꽤 잘 작동하고, 페이지로드 포커스가 텍스트 필드에서 selectbox로 이동했지만 텍스트 풍선에 오류 풍선이 나타납니다.

+0

자세한 정보를 제공 할 수 있습니까? 양식이 처음 렌더링 될 때 (제출 전에) 포커스가 맞습니까? 제출 후, 어떤 필드에 오류가 있습니까? –

+0

양식을 제출하지 않습니다. 페이지로드시 문제가 발생합니다. –

답변

1

Form 구성 요소의 autofocus 속성을 확인하십시오.

"true (기본값)이면 JavaScript가 추가되어 폼에 커서를 놓습니다. 포커스를받을 필드는 오류가 있거나 필요하거나 존재하는 순서대로 렌더링 된 첫 번째 필드입니다 우선 순위). "

또한 내가 가장 가능성이 윈도우의로드 이벤트를 수신하기 위해 인라인 <script>를 사용하여 발생하는 생각 JavaScriptSupport.autoFocus(...)

+0

이지만 자동 초점의 기본값은 true입니다. 이 필드를 사용하지 않아도 작동한다는 것을 의미합니다. –

0

에 관심이있을 수 있습니다. JavaScriptSupport를 통해 스크립트를 실행 해보십시오. LATE의 InitializationPriority를 ​​지정해야 할 수 있습니다.

나는 왜 그것이 select 대신 텍스트 필드에 초점을 맞추고 있는지 확실하지 않습니다.

+0

Tapestry 5.1.0.5 버전을 사용 중이므로 JavaScriptSupport.autoFocus (...) 메서드를 사용할 수 없습니다. 하지만 AfterRender 메서드에서 기본 포커스를 설정하려면 javascript 메서드를 호출 할 수 있지만 작동하지 않습니다. –

+0

채팅 할 수 있도록 채팅방에 들어갈 수 있습니까? http://chat.stackoverflow.com/rooms/32020/tapestry –

+0

불행히도 나는 할 수 없다. URL이 내 직장에서 차단되었습니다. –

1

마지막으로 답변을 얻었습니다.

여기 하나의 라이너 솔루션이 있습니다. 폼 구성 요소에 autofocus = "false"를 넣으면됩니다.

기본적으로 자동 초점 값은 true이고, 페이지 필드에 포커스를 넣어 특정 기준에 따라, 그리고 약간의 시간이 이상한 동작합니다.

자세한 내용은 아래 링크를 방문하십시오. http://tapestry.apache.org/forms-and-form-components-faq.html

관련 문제