thickbox jQuery com iframe. Definir foco para o campo de entrada
-
06-07-2019 - |
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>
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,