He provado de hacer que un formulario deje de funcionar después de X fecha he provado ha hacerlo con asp sin exito y creo que esto se puede hacer con javascript lo que no se como hacerlo

Un saludo
| ||||
He de decirte que con Javascript se tomará la fecha del ordenador del que visita tu página, por lo que si cambia el visitante la fecha del ordenador podrá rellenar el formulario. Hecha esta salvedad te indico como hacerlo: Código HTML: <html> <head> <script language="JavaScript"> //Fecha límite para el formulario var diaLimite=1; var mesLimite=1;//enero=0, febrero=1, marzo=2 ... diciembre=11 var anioLimite=2005; //Si quieres poner la fecha del servidor debes llenar el valor de fechaASP con el formato aaaa/mm/dd por ejemplo de la forma sugerida. //<% Dim Actual //Actual = Now() %> var fechaASP//=<%= Day(Actual) & "/" & Month(Actual) & "/" & Year(Actual) %> //formato: dd/mm/aaaa if(fechaASP){ diaASP=fechaASP.split("/"); var dia=diaASP[0]; var mes=diaASP[1]; var anio=diaASP[2]; var fecha=new Date(anio,mes,dia); } else{ var fecha=new Date(); } var limite=new Date (anioLimite,mesLimite,diaLimite); function comprobar(){ formulario=document.forms[0]; if(limite<fecha){ for(a=0;a<formulario.elements.length;a++){ formulario[a].disabled=true; } } else{ //No ponemos el Action del formulario hasta que nos aseguramos de que se puede mandar. formulario.action="destino.html" } } </script> </head> <body onload="comprobar()"> <form name="frm" action="#"> <input type="text" name="elemento0"><br> <input type="text" name="elemento1"><br> <input type="text" name="elemento2"><br> <select name="pepote" size="1"> <option value="1" SELECTED>Elige</option> <option value="2">Casa</option> <option value="3">Cosa</option></select> <input type="submit" name="enviar" value="enviar" > </form> </body> </html>
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |
| ||||
Podría haberte pasado el código sin comentarios, pero no lo he hecho. Lo normal es leer un poco el código y sus comentarios de lo que se te pasa. Como ves en fecha límite está el 1 de febrero de 2005. Y como aún no ha llegado pues muestra el formulario. Si lo cambias a una fecha anterior no lo mostrará.
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |
| ||||
No, perdona tú . He estado muy agresivo. Me sienta mal el trabajar en estas fechas ![]() Un saludo!
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |
| ||||
Cómo que te redirecciona? Lo que hace es mostrar el formulario deshabilitado si se ha pasado la fecha en cuestión.
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |
| ||||
Perdona esto era con otro codigo que prové... Lo que me pasa con este es que lo coloco encima del form y no me hac nada en cambio cuando saco solo lo que es el form en sí y le pongo el codigo si que va, que puede pasar, algun conflicto? Un saludo |
| ||||
Pones el onload del body? <body onload="comprobar()">
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |
| ||||
Debe ser que hay algún conflicto por que tengo includes de otras paginas. No hay otra manera de hacerlo? Si extraigo solo lo que es el formulario funciona pero cuando lo pongo en lo que es la pagina en sí no funciona. Un saludo |
| ||||
Prueba con esto Código HTML: <html> <head> <script language="JavaScript"> //Fecha límite para el formulario var diaLimite=1; var mesLimite=1;//enero=0, febrero=1, marzo=2 ... diciembre=11 var anioLimite=2005; //Si quieres poner la fecha del servidor debes llenar el valor de fechaASP con el formato aaaa/mm/dd por ejemplo de la forma sugerida. //<% Dim Actual //Actual = Now() %> var fechaASP//=<%= Day(Actual) & "/" & Month(Actual) & "/" & Year(Actual) %> //formato: dd/mm/aaaa if(fechaASP){ diaASP=fechaASP.split("/"); var dia=diaASP[0]; var mes=diaASP[1]; var anio=diaASP[2]; var fecha=new Date(anio,mes,dia); } else{ var fecha=new Date(); } var limite=new Date (anioLimite,mesLimite,diaLimite); function comprobar(){ formulario=document.forms['frm']; if(limite<fecha){ for(a=0;a<formulario.elements.length;a++){ formulario[a].disabled=true; } } else{ //No ponemos el Action del formulario hasta que nos aseguramos de que se puede mandar. formulario.action="destino.html" } } </script> </head> <body onload="comprobar()"> <form name="frm" action="#"> <input type="text" name="elemento0"><br> <input type="text" name="elemento1"><br> <input type="text" name="elemento2"><br> <select name="pepote" size="1"> <option value="1" SELECTED>Elige</option> <option value="2">Casa</option> <option value="3">Cosa</option></select> <input type="submit" name="enviar" value="enviar" > </form> </body> </html>
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. Última edición por KarlanKas; 04/01/2005 a las 16:49 |
| ||||
Vamos a ver, porque es extrañísimo. Copia esto en el head: Código HTML: <script language="JavaScript"> //Action del formulario var accion="destino.html"; //Fecha límite para el formulario var diaLimite=1; var mesLimite=1;//enero=0, febrero=1, marzo=2 ... diciembre=11 var anioLimite=2005; var hoyEs=new Date(); var fechaLimite=new Date (anioLimite,mesLimite,diaLimite); function comprobar(nameDelForm){ formulario=document.forms[nameDelForm]; if(fechaLimite<hoyEs){ for(a=0;a<formulario.elements.length;a++){ formulario[a].disabled=true; } } else{ //No ponemos el Action del formulario hasta que nos aseguramos de que se puede mandar. formulario.action=accion; } } </script> Código HTML: <body onload="comprobar('frm')//Pon entre los paréntesis el name del form que quieras deshabilitar"> Acuerdate que una vez que comprueba la fecha, si es válida cambia el action del form al destino que está en la variable accion. En el action de dentro del formulario pon # o algo parecido, no sea que corten la carga de la página y no se pueda ejecutar el script y mande el formulario. He cambiado los nombres de las variables por si acaso. Comprueba que están las etiquetas del form bien puestas, la de apertura y la de cierre. Si te sigue sin funcionar puedes indicar la url de la página para echarle un vistazo? Un saludo!
__________________ Cómo escribir No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia. |