En teoría al hacer click en el checkbox si el boton "Ok" está disabled="disabled" debería eliminar el atributo para que el botón estuviera activo y así sucede, solo que según el debug que trago de hacer con FireBug aparentemente no elimina el atributo del código, solamente cambia el estado, ni siquiera cambia el contenido del atributo. Por lo que nunca entra en la segunda condicion del if que es la que deshabilita nuevamente el botón cuando desmarcas la casilla del checkbox.
Por cierto ¿cómo puedo hacer que la declaración que se hace dentro del formulario de la variable de javascript boton_aceptar sea vista desde dentro de la funcion checkevent()? lo digo porque veo poco eficiente que haya que redeclarar el objeto otra vez dentro de la misma...
Código javascript
:
Ver originalfunction checkevent(e)
{
var objeto=e.srcElement || e.target;
var evento = e.type;
if (objeto.name == "checkbox_aceptar" || evento == "change")
{
var boton_aceptar = document.getElementById("boton_aceptar")
if ( boton_aceptar.disabled = "disabled") {boton_aceptar.removeAttribute("disabled") ;}
else {boton_aceptar.setAttribute("disabled", "disabled");}
}
}
Código html:
Ver original<form name"registro" action="?accion=reg_usuario" method="post" enctype="application/x-www-form-urlencoded"> <input type="text" id="reg_email" name="reg_email" title="Email de usuario" value="" /></label><br /> <input id="reg_pass" name="reg_pass" type="password" title="Contraseña" value="" /></label><br /> <input id="reg_pass2" name="reg_pass2" type="password" title="Contraseña de confirmación" value="" /></label><br /> <label><input id="checkbox_aceptar" name="checkbox_aceptar" type="checkbox" title="Acepto los términos de servicio de CON" />Entiendo y acepto la pol
ítica de privacidad
</label><br /> <input id="boton_aceptar" type="submit" value="Ok" />
<!--
//Esto inicializa el estado del botón por si no hay javascript activo
var boton_aceptar = document.getElementById("boton_aceptar");
boton_aceptar.setAttribute("disabled", "disabled");
-->
Código javascript
:
Ver original<script>
<!--
var checkbox_aceptar = document.getElementById("checkbox_aceptar");
if (checkbox_aceptar.addEventListener) //W3C DOM
{
checkbox_aceptar.addEventListener('change', function(event) { checkevent(event) }, false);
}
else //IE DOM
{
checkbox_aceptar.attachEvent('onchange', function(event) { checkevent(event) });
}
-->
</script>