miércoles 3 de diciembre de 2008

Deshabilitar un control HTML Select manteniendo la informacion

Hay veces en las que necesito mostrar un control <SELECT> deshabilitado, pero quiero mantener la información del mismo en el formulario y enviarla al action que corresponda.
Si leemos la documentacion, veremos que los controles SELECT no se pueden poner como readonly, sino que solo se pueden deshabilitar (disabled="disabled").
El tema con deshabilitar el control, es que el mismo ya no formará parte del conjunto de datos que el formulario HTML enviará a su action correspondiente. Para solucionar esto, vamos a emular con javascript el efecto de un control desactivado, sacándole el foco al control cada vez que este intenta tomar el foco, de la siguiente manera:


<select name="miCombo" onfocus="javascript:this.blur(); return false;" >


Asi que agregando solamente el atributo onfocus, con el codigo mostrado, cada vez que el control intente tomar el foco, se lo quitamos y de esta manera tornamos imposible la edición de su valor.

2 comentarios:

Joserra dijo...

Y además con CSSs le puedes dar justo el efecto de que parezca deshabilitado...

Leo dijo...

Exactamente Joserra, gracias por el aporte!