Pregunta

Hola, tenía un jquery thickbox modal popu p en mi aplicación. ( iframe )
Todo funciona muy bien, pero quiero establecer el enfoque en un campo de entrada específico d.

El Iframe carga una página aspx normal, así que pensé en hacer un $ (document) .ready (.. focus);
Puse ese script en el código IFrame

Sin embargo, esto no funciona. Creo que después de "listo" la caja gruesa ejecuta otro código para que vuelva a perder el foco. (por ejemplo ... PUEDO establecer el valor del campo de entrada para que el mecanismo funcione ..

¿Alguien puede ayudarme a establecer el enfoque? A continuación se muestra mi código de llamada ..

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

Solución

ThickBox muestra el contenedor del iframe llamando a un método en el evento onload del elemento iframe. Como el iframe está oculto en la página principal hasta que se carga el contenido del iframe, no puede establecer el foco simplemente usando $ (document) .ready (.. focus) ;. La forma más fácil que he encontrado para evitar esto es usar setTimeout para retrasar la llamada a la función que establece el foco hasta después de que se muestre el iframe:

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

Nota: Puede que tenga que ajustar el valor de milisegundos que pasa a setTimeout.

Otros consejos

De docs.jquery.com:

  

Activa el evento de enfoque de cada elemento coincidente.

     

Esto hace que se ejecuten todas las funciones que se han vinculado al evento de foco.   Tenga en cuenta que esto no ejecuta el método de enfoque de los elementos subyacentes.

Eso significa que su código debería ser: $ ('# input_field'). get (0) .focus ()

La diferencia es que usas en mi ejemplo el elemento de enfoque del elemento DOM, mientras que en el tuyo usas jQuery.

Eso todavía no funciona , pero es quizás un paso en la dirección correcta.

Saludos,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top