Aquí os dejo el código, tanto del JavaScript, tanto en la parte del formulario donde llamo la función JavaScript, por si acaso está ahí el fallo, que no creo, pero bueno, a ver si alguien ve donde está el fallo.
Código HTML:
<form method="POST" name="Reservas" action="reservas.php" onSubmit="validar()">
Código:
<script Language="JavaScript" Type="text/javascript"> function validar() { if (document.Reservas.Dia.selectedIndex < 0) { alert("Elija una de las opciones \"Dia\"."); document.Reservas.Dia.focus(); return (false); } if (document.Reservas.Dia.selectedIndex == 0) { alert("La primera opción \"Dia\" no es válida. Elija una de las otras opciones."); document.Reservas.Dia.focus(); return (false); } if (document.Reservas.Mes.selectedIndex < 0) { alert("Elija una de las opciones \"Mes\"."); document.Reservas.Mes.focus(); return (false); } if (document.Reservas.Mes.selectedIndex == 0) { alert("La primera opción \"Mes\" no es válida. Elija una de las otras opciones."); document.Reservas.Mes.focus(); return (false); } if (document.Reservas.Hora.selectedIndex < 0) { alert("Elija una de las opciones \"Hora\"."); document.Reservas.Hora.focus(); return (false); } if (document.Reservas.Hora.selectedIndex == 0) { alert("La primera opción \"Hora\" no es válida. Elija una de las otras opciones."); document.Reservas.Hora.focus(); return (false); } if (document.Reservas.Comensales.value == "") { alert("Es obligatorio indicar el número de \"Comensales\"."); document.Reservas.Comensales.focus(); return (false); } if (document.Reservas.Comensales.value.length < 1) { alert("Es obligatorio indicar el número de \"Comensales\"."); document.Reservas.Comensales.focus(); return (false); } if (document.Reservas.Comensales.value.length > 2) { alert("Escriba como máximo 2 caracteres en el campo \"Comensales\"."); document.Reservas.Comensales.focus(); return (false); } var checkOK = "0123456789"; var checkStr = document.Reservas.Comensales.value; var allValid = true; var validGroups = true; for (i = 0; i < checkStr.length; i++) { ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { allValid = false; break; } } // se cierra el 'for' if (!allValid) { alert("Escriba sólo números en el campo \"Comensales\"."); document.Reservas.Comensales.focus(); return (false); } if (document.Reservas.Contacto.value == "") { alert("Escriba el nombre de una persona de contacto"); document.Reservas.Contacto.focus(); return (false); } if (document.Reservas.Contacto.value.length < 1) { alert("Escriba el nombre de una persona de contacto"); document.Reservas.Contacto.focus(); return (false); } if (document.Reservas.Telefono.value == "") { alert("Escriba un Teléfono de contacto"); document.Reservas.Telefono.focus(); return (false); } if (document.Reservas.Telefono.value.length < 9) { alert("Escriba un teléfono válido, de 9 dígitos en el campo \"Telefono\"."); document.Reservas.Telefono.focus(); return (false); } var checkOK = "0123456789"; var checkStr = document.Reservas.Telefono.value; var allValid = true; var validGroups = true; for (i = 0; i < checkStr.length; i++) { ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { allValid = false; break; } } // se cierra el 'for' if (!allValid) { alert("Escriba sólo números en el campo \"Teléfono\"."); document.Reservas.Telefono.focus(); return (false); } return (true); } </script>