Pergunta

Oi eu tinha um jQuery thickbox modal popu p sobre o meu pedido. ( iframe )
Tudo funciona muito bem, mas eu quero definir o focagem para um entrada específica fiel d.

O iframe carrega uma página aspx normal, então eu pensei que eu faria um (documento) $ .ready (.. foco);
Eu coloquei esse script no código IFrame

No entanto, isto não funciona. Eu acredito que após o "pronto" algum outro código é executado pelo thickbox para que ele perde o foco novamente. (Por exemplo .. Eu posso definir o valor do campo de entrada para que o mecanismo funciona ..

Alguém pode me ajudar definir o foco? Abaixo está o meu código de chamada ..

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
Foi útil?

Solução

ThickBox exibe recipiente do iframe chamando um método no evento onload do elemento iframe. Desde o iframe está oculto na página pai até depois o conteúdo do iframe é carregado você não pode definir o foco simplesmente usando .ready $ (documento) (.. foco) ;. A maneira mais fácil que eu encontrei para contornar este problema é usar setTimeout para atrasar a chamada de função que ajusta o foco até depois do iframe é exibida:

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

Nota:. Você pode ter que ajustar o valor dos milissegundos que você passar para setTimeout

Outras dicas

De docs.jquery.com:

dispara o evento foco de cada elemento correspondente.

Isso faz com que todas as funções que foram ligados ao evento foco para ser executado. Note que este não executa o método de foco dos elementos subjacentes.

Isso significa, seu código deve mais provável ser: $ ( '# INPUT_FIELD'). Get (0) .focus ()

A diferença é que você usa no meu exemplo próprio elemento foco do elemento DOM, enquanto que em seu você usar jQuery.

Isso ainda não funciona , mas talvez seja um passo na direção certa.

Cheers,

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top