Impedir que se ejecute onBlur cuando utilizamos readOnly
Escrito por J.F. el Jueves, 30 de Agosto del 2007 a las 17:29
Puede que nunca te suceda, y no tengas la necesidad, pero cuando a un campo de texto o cualquier otro objeto, le ponemos la propiedad readOnly, si dicho objeto ejecutaba alguna función en el evento Javascript onBlur, estando en el modo solo lectura la seguirá ejecutando. Para evitar ésto hay 2 opciones:
- Utilizar la propiedad disabled. Su sintáxis es la siguiente:
document.formulario.nombre_campo.disabled=true;
El único inconveniente es que, si queremos enviar un valor nulo del campo, con disabled no lo conseguiremos, ya que con dicha propiedad no se enviará ningún valor en el value. Para conseguir eso, deberemos utilizar
readOnlyy anularonBlurde la manera explicada en el siguiente punto. - Utilizaremos el siguiente truco, que consiste en desactivar la propiedad
onBlur,y guardarla en otra variable por si en otro momento queremos activarla. El código es bastante sencillo:JavaScript:-
if(condicion) {
-
document.formulario.campo.readOnly = true;
-
document.formulario.campo.lastonblur = document.formulario.campo.onblur;
-
document.formulario.campo.onblur = '';
-
}
-
- Añadir este post a
- Del.icio.us -
- Meneame -
- Digg -
- Webeame
Categoria: Javascript
Entradas relacionadas
Deja un comentario
