UN RETO PARA EL JAVASCRIPT

Beltran
24 de Marzo del 2004
Hola a todos, necesito poder enviar los datos de un formulario de forma retardada, es decir, que cuando se pulse el boton submit comience una cuenta atras, de horas incluso, hasta que se envien los datos de ese formulario mediante POST ya que el servidor al que le refiero la informacion no admite GET.

Un ejemplo del uso de esto es que al levantarme por la mañana pueda programar, de algun modo, el envio de cierta informacion a un servidor a las 6 de la tarde, por ejemplo.

He orientado mis esfuerzos en el HTML porque no tengo otros conocimientos de programacion pero agradeceria me dierais todas vuestras ideas para solucionar esto.

Muchas gracias por aceptar el reto


rsalvadores
24 de Marzo del 2004
Prueba esto:

<html>
<head>
<title>Forms Retardado</title>
</head>
<script>
var timerPru
function enviarForm(){
var no=form1.select.selectedIndex
var time=form1.select[no].value
switch (time) {
case "s" :
f=1000
break;
case "m" :
f=1000*60
break;
case "h" :
f=1000*3600
break;
default:
alert ("No ha seleccionado tiempo")
}
var seg=document.getElementById("timer").value*f
timerPru=setInterval(enviar,seg)
}
function enviar(){
clearInterval(timerPru)
document.form1.submit()
}
</script>
<body bgcolor="#FFFFFF" text="#000000">
<h1>Enviar formulario retardado con Javascript</h1>
<form name="form1" method="post" action="new.htm">
<font size="2" face="Arial, Helvetica, sans-serif" color="#0033FF">
<a href="Javascript:enviarForm()">Enviar FORMULARIO</a>
despues de </font>
<input type="text" id="timer" name="textfield" size="1" value="3" maxlength="3">
<select name="select" >
<option value="s" selected>Segundos</option>
<option value="m">Minutos</option>
<option value="h">Horas</option>
</select>
</form>
</body>
</html>

Por supuesto, no puedes cerrar el navegador.

Si quieres que aparecza el tipico boton submit, sustituye

<a href="Javascript:enviarForm()">Enviar FORMULARIO</a>

por

<input type="Button" name="Button" value="Submit" width="25" height="25" onclick="Javascript:enviarForm()" >

Espero que sea lo que buscas.

rsalvadores