Volver a Proyectos Listado de Artículos

Problema con los formularios en la librería shadowbox 3.0.3

Luis Ruiz

Escrito por Luis Ruiz Actualizado el

Cuando tenía un formulario en el Lightbox y daba a la tecla enter perdia los datos y los parámetros GET o POST...

Normalmente utilizo como Lightbox en mis desarrollo la librería shadowbox debido a que es compatible con jquery, bastante fácil de configurar y por ahora me ha servido para todos los caso que me han ido surgiendo.

En este caso, el problema que tenia era el siguiente:

Cuando tenía un formulario en el popup y dabas a la tecla enter, volvía a cargarse la página. Perdiendo los datos introducidos o si había parámetros mediante GET o POST los perdía, como es lógico.

Mirando la documentación de la librería, encontré que para solucionar el bug había que poner la opción ‘enableKeys:false’ al abrir la el shadowbox, cosa que a mí no me funciono. Leyendo en el foro encontré una solución añandir al formulario lo siguiente:

[html]<input type=»text» />[/html]

Pero como es lógico me pareció una chapuza. Para solucionarlo de una forma más elegante, decidí capturar el evento de la tecla ‘enter’ y anularlo, lo hice de la siguiente forma:

[javascript]$(document).ready(function(){
$( ‘form input’).bind(‘keypress’ , function(e) {
if(e.keyCode==13){
return false ;
}
});
});
[/javascript]

Una forma más limpia sería detectar sólo el evento cuando el foco este en el input y en lugar de anularlo que se ejecute el submit. Si vas a ejecutar una función javascript la puedes poner antes del return, pero siempre tiene que estar return false.