문제

안녕 나는 가졌다 jQuery 두꺼운 상자 모달 포푸내 응용 프로그램에 p. (Iframe)
모든 것이 잘 작동하지만 설정하고 싶습니다 집중하다 a 특정 입력 필드디.

iframe은 일반 ASPX 페이지를로드하므로 $ (Document). Ready (.. Focus)를 수행 할 것이라고 생각했습니다.
그 스크립트를 iframe 코드에 넣었습니다

그러나 이것은 작동하지 않습니다. "준비된"후에 다른 코드는 Thickbox에 의해 실행되므로 다시 초점을 잃게됩니다. (예를 들어 .. 메커니즘이 작동하도록 입력 필드의 값을 설정할 수 있습니다 ..

아무도 내가 초점을 맞추도록 도와 줄 수 있습니까? 아래는 내 호출 코드입니다 ..

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
도움이 되었습니까?

해결책

Theadbox는 iframe 요소의 Onload 이벤트에서 메소드를 호출하여 iframe 컨테이너를 표시합니다. iframe이 Iframe의 내용이로드 된 후에 Iframe이 부모 페이지에 숨겨져 있으므로 $ (Document). Ready (.. Focus);. 내가 이것을 둘러싼 가장 쉬운 방법은 설정 타임 아웃을 사용하여 iframe이 표시 될 때까지 초점을 설정하는 함수 호출을 지연시키는 것입니다.

jQuery(document).ready(function() {        
    setTimeout(function(){
        $('#YourElementID').focus();   
    },200);
});

참고 : 설정 타임 아웃으로 전달하는 밀리 초 값을 조정해야 할 수도 있습니다.

다른 팁

docs.jquery.com에서 :

각 일치하는 요소의 초점 이벤트를 트리거합니다.

이로 인해 포커스 이벤트에 묶인 모든 기능이 실행됩니다. 이것은 기본 요소의 초점 방법을 실행하지 않습니다.

즉, 코드는 다음과 같습니다. $ ( '#input_field'). get (0) .focus ()

차이점은 내 예에서 Dom Element의 고유 한 초점 요소를 사용하는 반면, 귀하의 경우 jQuery를 사용한다는 것입니다.

여전히 작동하지 않습니다, 그러나 아마도 올바른 방향으로 나아가는 단계 일 것입니다.

건배,

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top