working problem not modal enforcefocus dropdownparent bootstrap jquery twitter-bootstrap modal-dialog

jquery - problem - Entrada de autoenfoque en twitter arranque modal



select2 search box not working in modal (5)

Las respuestas anteriores están algo desactualizadas para las últimas versiones de Bootstrap.

A continuación se muestra un extracto de: http://getbootstrap.com/javascript/#modals

Debido a cómo HTML5 define su semántica, el atributo de autofocus HTML no tiene ningún efecto en los modos modales de Bootstrap. Para lograr el mismo efecto, use JavaScript personalizado:

$(''#myModal'').on(''shown.bs.modal'', function () { $(''#myInput'').focus() })

Tengo ese problema: necesito autoenfocar algún elemento dentro de Twitter bootstrap modal (después de que se muestre). La parte complicada está aquí: el contenido de este modal se carga utilizando ''data-remote'' (método jQuery.load) desde un archivo HTML separado, por lo que

$(document).on(''shown'', ".modal", function() { $(''[autofocus]'', this).focus(); });

funciona solo si modal se cargó antes.
La pregunta es: ¿cómo hacer que el enfoque automático funcione en la primera carga modal?


Estoy usando Bootstrap 3.0 (con suerte, esto también funciona con 3.1).

Tuvimos que usar tabindex="-1" porque eso permite que la tecla ESC cierre el modal.

Así que pude solucionar este problema usando:

// Every time a modal is shown, if it has an autofocus element, focus on it. $(''.modal'').on(''shown.bs.modal'', function() { $(this).find(''[autofocus]'').focus(); });


No pude hacer funcionar la solución de @nc en mi aplicación. No vio modales que se agregaron más tarde. Esto funcionó para mí, aunque

$(document).on(''shown.bs.modal'', ''.modal'', function() { $(this).find(''[autofocus]'').focus(); });

Como señala Frank Fang, debe usar esto si está usando una versión más nueva de Bootstrap que no dependa del atributo HTML de autofocus .

$(''#myModal'').on(''shown.bs.modal'', function () { // get the locator for an input in your modal. Here I''m focusing on // the element with the id of myInput $(''#myInput'').focus() })


Tiene una entrada con el atributo de autofocus que desea enfocar cuando se muestra el modo de arranque.

¿Está disponible su marcado modal cuando se carga JavaScript?

Registre un controlador de eventos en todos los elementos .modal para el evento shown.bs.modal

$(''.modal'').on(''shown.bs.modal'', function() { $(this).find(''[autofocus]'').focus(); });

¿Su marcado modal se genera dinámicamente?

Registre un controlador de eventos en todo el documento para el evento shown.bs.modal .

$(document).on(''shown.bs.modal'', ''.modal'', function () { $(this).find(''[autofocus]'').focus(); });


intente eliminar tabindex = "- 1" y funciona bien.

<div class="modal fade" id="modalID" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal fade" id="modalID" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

¡Espero que esto ayude!