Recurro ya a vosotros como mi última opción, ya que tras mucho buscar, probar y cambiar sigo sin conseguir obtener el funcionamiento que quiero.
Tengo la siguiente función Javascript para validar que una fecha sea correcta:
Código:
La función en sí funciona más o menos correctamente. He probado a ejecutarla con los eventos onchange del formulario y onclick del submit de tal manera que la alerta salta pero no se detiene el envío del formulario generándose correctamente un registro en la base de datos pero con la fecha a 0000-00-00.function validateDate(form) { var year = form.year.value; var month = form.month.value; var day = form.day.value; var time = new Date(); var fail = false; switch (month) { case "4": var maxDays = 30; break; case "6": var maxDays = 30; break; case "9": var maxDays = 30; break; case "11": var maxDays = 30; break; case "2": if ((year % 100 != 0) && ((year % 4 == 0) || (year % 400 == 0))) { var maxDays = 29; } else { var maxDays = 28; } break; default: var maxDays = 31; break; } if (day > maxDays) { alert('La fecha introducida es incorrecta'); } else { fail = true; } return fail; }
¿A alguien se le ocurre a qué se debe tal fallo y cómo puedo solucionarlo? Muchas gracias, un saludo.