Foros del Web » Programando para Internet » Javascript »

validar año mes y dia

Estas en el tema de validar año mes y dia en el foro de Javascript en Foros del Web. hola de nuevo quiero validar que los datos tomados de el siguiente codigo sean verdaderos antes de almacenarlos usando java script seque con php se ...
  #1 (permalink)  
Antiguo 31/01/2013, 13:35
 
Fecha de Ingreso: enero-2013
Mensajes: 38
Antigüedad: 11 años, 3 meses
Puntos: 0
Mensaje validar año mes y dia

hola de nuevo quiero validar que los datos tomados de el siguiente codigo sean verdaderos antes de almacenarlos usando java script seque con php se puede pero necesito que sea por java , e aqui el codigo:
<html>
<body>
<form action="edad.php" method="post" >
Dia<input type="text" style="justify" id="dia" name="dia" size="5" onkeypress="return validar2(event)" maxlength="2" required>
Mes<input type="text" id="mes" style="justify" name="mes" size="5" maxlength="2" required>
Año<input type="text" style="justify" id="año" name="año" size="5" onkeypress="return validar2(event)" maxlength="4" required>
<input type="submit" value="dale" onclick="checkDate();"> dale
</form>
</body>
</html>


como ven tomo los tres datos dia ,mes, año separado pra mayor comodidad de lo que hago no puedo tomarlos juntos separados por barras porque se em complica mas adelante, de esta forma les pido que porfavor porfavor me asesoren en validar lo que tienen esos tres campos yo lo inetnte con este script pero no em sirve lo ignora el programa aqui se los dejo:

<script>
function checkDate() {

var myDayStr = document.getElementById('dias').value;

var myMonthStr = parseInt(document.getElementById('mes').value)-1;

var myYearStr = document.getElementById('años').value;

var dteDate;



dteDate=new Date(myYearStr,myMonthStr,myDayStr);



var valid= ((myDayStr==dteDate.getDate()) && (myMonthStr==dteDate.getMonth()) && (myYearStr==dteDate.getFullYear()));

var myDateStr = myDayStr + ' ' + myMonthStr + ' ' + myYearStr;

if(valid==false)

{

alert( 'Selected date is not valid.' );

}

return valid;

}
</script>
  #2 (permalink)  
Antiguo 31/01/2013, 13:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 342
Antigüedad: 13 años, 1 mes
Puntos: 97
Respuesta: validar año mes y dia

Este foro no es de PHP ni Javascript, solicitá que muevan tu tema al foro adecuado usando el ícono triangular debajo de tu nombre de usuario, además si usas el buscador del foro seguramente encontrarás que este tema ha sido tratado varias veces, saludos .
  #3 (permalink)  
Antiguo 01/02/2013, 12:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 32
Antigüedad: 12 años
Puntos: 1
Respuesta: validar año mes y dia

Yo por lo que veo
Cita:
sebastopols
es tema de javascript, porque la funcon que pone y no jala está en javascript, solo que como es novato le dice java. No olviden que una cosa es javascript y otra java, que por cierto son muy diferentes.
  #4 (permalink)  
Antiguo 01/02/2013, 13:07
Avatar de kelpielovego0d  
Fecha de Ingreso: febrero-2013
Ubicación: México
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: validar año mes y dia

Hola mira te dejo aquí modifique tu código no se enviará hasta que la fecha sea correcta...
Ojo con los id deben ser idénticos cuando los utilizas en funciones...
id="años" document.getElementById('años')

Saludos.!

Código PHP:
Ver original
  1. <html>
  2. <body>
  3. <form action="edad.php" method="post" id="form1">
  4. Dia<input type="text" style="justify" id="dias" name="dia" size="5" onkeypress="return validar2(event)" maxlength="2" required>
  5. Mes<input type="text" id="mes" style="justify" name="mes" size="5" maxlength="2" required>
  6. Año<input type="text" style="justify" id="años" name="año" size="5" onkeypress="return validar2(event)" maxlength="4" required>
  7. <input type="submit" value="dale" onclick="valida();"> dale
  8. </form>
  9. </body>
  10. </html>


Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function valida(){
  3.     document.getElementById('form1').onsubmit = checkDate;
  4. }
  5. function checkDate() {
  6.  
  7. var myDayStr = document.getElementById('dias').value;
  8.  
  9. var myMonthStr = parseInt(document.getElementById('mes').value)-1;
  10.  
  11. var myYearStr = document.getElementById('años').value;
  12.  
  13. var dteDate;
  14.  
  15.  
  16.  
  17. dteDate=new Date(myYearStr,myMonthStr,myDayStr);
  18.  
  19.  
  20.  
  21. var valid= ((myDayStr==dteDate.getDate()) && (myMonthStr==dteDate.getMonth()) && (myYearStr==dteDate.getFullYear()));
  22.  
  23. var myDateStr = myDayStr + ' ' + myMonthStr + ' ' + myYearStr;
  24.  
  25. if(valid==false)
  26.  
  27. {
  28.  
  29. alert( 'Selected date is not valid.' );
  30. return false;
  31.  
  32. }
  33.  
  34. return valid;
  35. return true;
  36.  
  37. }
  38. </script>
  #5 (permalink)  
Antiguo 01/02/2013, 16:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 342
Antigüedad: 13 años, 1 mes
Puntos: 97
Respuesta: validar año mes y dia

Cita:
Iniciado por marisolphp Ver Mensaje
Yo por lo que veo es tema de javascript, porque la funcon que pone y no jala está en javascript, solo que como es novato le dice java. No olviden que una cosa es javascript y otra java, que por cierto son muy diferentes.
El hilo estaba en principio en el foro de Java, por algo realicé la acotación y la recomendación de que el hilo fuera movido al foro correcto, ahora está en Javascript, saludos.
  #6 (permalink)  
Antiguo 01/02/2013, 16:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 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.
  #7 (permalink)  
Antiguo 28/09/2015, 14:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 24
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: validar año mes y dia

más fácil así
//para validar si la fecha es real
var fechaArr = fecha_nacimiento.split('-');
var aho = fechaArr[0];
var mes = fechaArr[1];
var dia = fechaArr[2];

var plantilla = new Date(aho, mes - 1, dia);//mes empieza de cero Enero = 0

if(!plantilla || plantilla.getFullYear() == aho && plantilla.getMonth() == mes -1 && plantilla.getDate() == dia)
{
alert("la fecha es correcta");
}
else
{
alert("la fecha es incorrecta");
}

Etiquetas: año, dia, java, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.