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:

<input type="text" />

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:

$(document).ready(function(){
    $( 'form input').bind('keypress' , function(e) {
        if(e.keyCode==13){
            return false ;
        }
    });
});

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.