Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/02/2013, 16:53
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: validar año mes y dia

Primero, @nexusdata, esforzate un poco más con los enunciados

Cita:
mes, año separado pra mayor comodidad de lo que hago no puedo tomarlos juntos separados por barras porque se em complica mas adelante
que mucho no se entiende, ahora una validación de fecha (dia, mes, año) dentro de un form, y que prevenga el envío. Y obviamente que no te vayan a poner fechas como 30 de febrero de 1999, 31 de junio de 2000, etc, se consigue de esta manera

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Validar Fecha Javascript</title>
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. // creamos los campos dinámicamente
  10. var texto_mes=[null,'Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sept','Oct','Nov','Dic'];
  11. function crear_fecha(campo_dia, campo_mes,campo_anio){
  12. var hoy=new Date();
  13. var a_actual = hoy.getFullYear();
  14.  
  15. var campo_dia=document.getElementById(campo_dia);
  16. var campo_mes=document.getElementById(campo_mes);
  17. var campo_anio=document.getElementById(campo_anio);
  18.  
  19. campo_dia.options[0]=new Option('Día', '');
  20. for (var d=1; d<=31; d++){
  21. campo_dia.options[d]=new Option(d, d);
  22. }
  23.  
  24. campo_mes.options[0]=new Option('Mes', '');
  25. for (var m=1; m<texto_mes.length; m++){
  26. campo_mes.options[m]=new Option(texto_mes[m], m)
  27. }
  28.  
  29. var e = 0;
  30. // a_actual representa el año actual, si se prefiere se pueden reemplazar los valores porel rango de años que aparecerán en el select
  31. // ejemplo:
  32. // for (var a=1970; a<=2025; a++){
  33. campo_anio.options[0]=new Option('Año', '');
  34. for (var a=1919; a<=a_actual; a++){
  35. e++;
  36. campo_anio.options[e]=new Option(a, a);
  37. }
  38.  
  39. }// fin función de creación de selects dinámicos
  40.  
  41. // funciones de validación
  42. function verifica(){
  43. var campo_dia=document.getElementById('dia').value;
  44. var campo_mes=document.getElementById('mes').value;
  45. var campo_anio=document.getElementById('anio').value;
  46. if(fechaValida(campo_anio,campo_mes,campo_dia) == false){
  47. alert('Ingrese una fecha válidad, día, mes y año');
  48. return false;
  49. }else{
  50. alert('Fecha ok, procesando el formulario...');
  51. }
  52. }
  53.  
  54. function fechaValida(y,m,d){
  55. var fecha = new Date(y,m-1,d);
  56. var convertirFecha = ""+fecha.getFullYear() + (fecha.getMonth()+1) + fecha.getDate();
  57. var fechaDada = "" + y + m + d;
  58. return ( fechaDada == convertirFecha);
  59. }
  60.  
  61. // llamamos en la carga de página la función que crea los campos
  62. // se le  pasa como parámetros los id de los selects que contienen dia, mes y año, en ese mismo orden
  63. window.onload=function(){crear_fecha('dia','mes','anio');}
  64.  
  65. //]]>
  66. </head>
  67. <form method="post" action="x.php" onsubmit="return verifica();">
  68. <select name="dia" id="dia">
  69.     <option><!-- fix --></option>
  70. <select name="mes" id="mes">
  71.     <option><!-- fix --></option>
  72. <select name="anio" id="anio">
  73.     <option><!-- fix --></option>
  74. <p>
  75.     <input type="submit" value="guardar datos" name="procesando" />
  76. </p>
  77. </form>
  78. </body>
  79. </html>

Poe supuesto, todo esto es a título informativo, ya que una validación en serio, debería llevarase a cabo en el servidor

Demo
http://foros.emprear.com/javascript/...esto_form.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.