Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/08/2011, 15:08
Avatar de laratik
laratik
 
Fecha de Ingreso: mayo-2010
Ubicación: Cali
Mensajes: 317
Antigüedad: 14 años, 6 meses
Puntos: 63
Respuesta: deshabilitar un botón submit cuando acabe una cuenta atras

Por que no intentas a pasar como parámetro el id del botón a desactivar así como haces con el div en el cual realizas la cuenta atrás, de esa manera obtendrías algo como esto:

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2.  
  3. StartCountDown("clock1","09/07/2011 07:28 PM")
  4. function StartCountDown(myDiv,myTargetDate)
  5. {
  6. var dthen   = new Date(myTargetDate);
  7. var dnow    = new Date();
  8. ddiff    = new Date(dthen-dnow);
  9. gsecs    = Math.floor(ddiff.valueOf()/1000);
  10. CountBack(myDiv,gsecs);
  11. }
  12.  
  13. function Calcage(secs, num1, num2)
  14. {
  15. s = ((Math.floor(secs/num1))%num2).toString();
  16. if (s.length < 2)
  17. {  
  18. s = "0" + s;
  19. }
  20. return (s);
  21. }
  22.  
  23. function CountBack(myDiv, secs, desh)
  24. {
  25. var DisplayStr;
  26. var DisplayFormat = "%%D%% Dias, %%H%% Horas, %%M%% Minutos, %%S%% Segundos.";
  27. DisplayStr = DisplayFormat.replace(/%%D%%/g,    Calcage(secs,86400,100000));
  28. DisplayStr = DisplayStr.replace(/%%H%%/g,    Calcage(secs,3600,24));
  29. DisplayStr = DisplayStr.replace(/%%M%%/g,    Calcage(secs,60,60));
  30. DisplayStr = DisplayStr.replace(/%%S%%/g,    Calcage(secs,1,60));
  31. if(secs > 0)
  32. {  
  33. document.getElementById(myDiv).innerHTML = DisplayStr;
  34. setTimeout("CountBack('" + myDiv + "'," + (secs-1) + ", '"+desh+"' );", 990);
  35. }
  36. else
  37. {
  38.     document.getElementById(desh).disabled = true;
  39. document.getElementById(myDiv).innerHTML = "cuenta atras ha terminado!";
  40. }
  41.  
  42. }
  43.  
  44. </script>

Al manejar recursividad debes también enviar el parámetro que recibes dentro de la función.

Código HTML:
<body onload="CountBack('c',60,'env')">
<div id="c"></div>
<form action="prueba.php" method="post">
<input type="submit" value="Enviar" id="env" />
</form>
</body> 
Espero que sea lo que estas buscando.
__________________
Programar apasiona y lo que apasiona es un arte, por lo tanto programar es un arte.

Quiero karma para en mi próxima vida ser un billonario bien dotado con alas.