Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2009, 12:09
Avatar de Dude--
Dude--
 
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 20 años, 7 meses
Puntos: 4
Problemas con el atributo disabled

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 original
  1. function checkevent(e)
  2. {
  3.     var objeto=e.srcElement || e.target;
  4.     var evento = e.type;
  5.     if (objeto.name == "checkbox_aceptar" || evento == "change")
  6.     {
  7.        
  8.         var boton_aceptar = document.getElementById("boton_aceptar")
  9.         if ( boton_aceptar.disabled = "disabled") {boton_aceptar.removeAttribute("disabled") ;}
  10.         else {boton_aceptar.setAttribute("disabled", "disabled");}
  11.     }
  12. }
Código html:
Ver original
  1. <form name"registro" action="?accion=reg_usuario" method="post" enctype="application/x-www-form-urlencoded">
  2. <input type="text" id="reg_email" name="reg_email" title="Email de usuario" value="" /></label><br />
  3. <input  id="reg_pass" name="reg_pass" type="password" title="Contraseña" value="" /></label><br />
  4. <input id="reg_pass2" name="reg_pass2" type="password"  title="Contraseña de confirmación" value="" /></label><br />
  5. <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 />
  6. <input id="boton_aceptar" type="submit" value="Ok" />
  7.  
  8. <!--
  9. //Esto inicializa el estado del botón por si no hay javascript activo
  10. var boton_aceptar = document.getElementById("boton_aceptar");
  11. boton_aceptar.setAttribute("disabled", "disabled");
  12. -->
  13.  
  14. </form>

Código javascript:
Ver original
  1. <script>
  2. <!--
  3. var checkbox_aceptar = document.getElementById("checkbox_aceptar");
  4. if (checkbox_aceptar.addEventListener) //W3C DOM
  5. {
  6.     checkbox_aceptar.addEventListener('change', function(event) { checkevent(event) }, false);
  7. }
  8. else //IE DOM
  9. {
  10.     checkbox_aceptar.attachEvent('onchange', function(event) { checkevent(event) });
  11. }
  12.    
  13. -->
  14. </script>
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."