Evita que form reciba foco (Popup modad)
Publicado por Eduardo (3 intervenciones) el 19/11/2012 00:12:42
Buenas. Tengo un div que hace de Popup. En un momento determinado muestra un mensaje y tiene un botón para cerrarse. Para hacer que sea modal, primero visualizo un div vacío con con un color tenue que cubre la totalidad del formulario y sobre éste muestro el popup. La visualización la hago a través de la propiedad display de css, con JQuery:
El problema que tengo es que no consigo al 100% que sea modal. Al visualizarse el popup y pulsar la tecla Tab, se podía pasar dentro del formulario y escribir en él. Lo que se me ocurrió, fue utilizar un evento key para detectar la tecla Tab y hacer que no haga efecto mientras el popup está visible. Esto es lo que hice:
Lo cual funciona bien en IE pero en todos los demás como Chrome, Mozilla, Opera y Safari si hago click sobre cualquier otra parte que no sea el popup y pulso Tab, se logra introducir el foco en un control del Form y escribir en él. O también si ubico el cursor sobre la barra de dirección y pulso Tab.
Quisiera me ayudaran a hacer modal el popup o quizás orientarme con otra forma.
Saludos cordiales.
1
2
3
4
5
$("#btnMostrarPopup").click(function () {
$("#divP").css("display", "block"); // Este es el div tenue que cubre todo el form
$("#PopupWarning").css("display", "block"); // Este es el popup que contiene los datos (es un div)
$("#btnCerrarWarning").focus(); // Tiene un botón para cerrarse (ocultarse)
});
El problema que tengo es que no consigo al 100% que sea modal. Al visualizarse el popup y pulsar la tecla Tab, se podía pasar dentro del formulario y escribir en él. Lo que se me ocurrió, fue utilizar un evento key para detectar la tecla Tab y hacer que no haga efecto mientras el popup está visible. Esto es lo que hice:
1
2
3
4
5
$("#form1").keydown(function (e) {
var display = $("#PopupWarning").css("display");
var key = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
if (display == "block" && key == 9) return false;
});
Lo cual funciona bien en IE pero en todos los demás como Chrome, Mozilla, Opera y Safari si hago click sobre cualquier otra parte que no sea el popup y pulso Tab, se logra introducir el foco en un control del Form y escribir en él. O también si ubico el cursor sobre la barra de dirección y pulso Tab.
Quisiera me ayudaran a hacer modal el popup o quizás orientarme con otra forma.
Saludos cordiales.
Valora esta pregunta


0