Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/07/2008, 21:33
Avatar de marcosr
marcosr
 
Fecha de Ingreso: agosto-2005
Ubicación: Montevideo, Uruguay
Mensajes: 451
Antigüedad: 18 años, 8 meses
Puntos: 5
Cambiar eventos de objetos, onkeyup y onblur

Hola amigos, les cuento que estoy desarrollando un muy simple sistema para un formulario que al insertar el ancho para una imágen, calcula automáticamente el alto proporcional.

El problema es que lo quiero hacer del mismo modo que lo hace Photoshop o cualquier otro programa de edicion y por ende he agregado un checkbox que dice mantener proporciones, si esta activado entonces el campo "alto" se encuentra desactivado y para cualquier valor de "ancho" insertado se calcula el "alto" proporcional, el tema es que lo deshabilito sin problemas pero al volver a a habilitarlo ya no calcula nada.

El código que he creado es la siguiente:

Código:
function constdisabled () {

	var constrain = document.getElementById("constrain");
	var height = document.getElementById("rnewheight");
	var width = document.getElementById("rnewwidth");
	
	if (constrain.checked == false) {
		height.disabled = false;
		width.onkeyup = "";
                width.onblur = ""; // He probado con onBlur y onKeyUp
	} else {
		height.disabled = true;
		width.onKeyUp = "calculateheight()";
                width.onblur = "calculateheight()";
	}

}

Mi HTML es el siguiente:

Código:
<input type="text" name="newwidth" value="<?php echo $Result['width']; ?>" onkeyup="calculateheight()" onblur="calculateheight()" class="field" id="rnewwidth" style="margin-left:18px;" />
<input type="text" name="newheight" value="<?php echo $Result['height']; ?>" class="field" id="rnewheight" disabled="disabled" />
<input type="checkbox" id="constrain" checked="checked" onchange="constdisabled()" /><label for="constrain">Constrain proportions</label>
Solo falta la funcion calculateheight pero no interfiere en el error.


Se agradece cualquier ayuda.

Un abrazo !
__________________
Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos?
(únete a la campaña !)