| |||
Como Validar un campo Hora? Necesito validar un campo en el que el usuario introducirá la hora de un evento a realizarse y necesito una rutina que me permita comprobar que introdujo una hora valida, tambien me sirve mostrar un reloj del cual el usuario pueda seleccionar la hora y al acceptar que los valores se peguen en el input text correspondiente. He buscado en varios sitios de internet y en las faq's javascript de aqui pero nada Si alguien puede ayudarme se lo agradecería...
__________________ En la busqueda de la verdad |
| ||||
Hola. A ver si te sirve esto: <script> // script para validar una hora en formato 24h. Por Carlitos ([email protected])// function valida(str) { hora=str.value if (hora.length>4) {alert("muy largo");return} if (hora.length!=4) {alert("introducir HHMM");return} a=hora.charAt(0) b=hora.charAt(1) c=hora.charAt(2) if (a>=2 && b>3) {alert("hora mal :(");return} if (c>5) {alert("minutos mal :(");return} alert("hora bien. :)") } </script> Hora (HHMM):<input type="text" name="hhmm" size="4"> <input type="button" value="Valida" onclick="valida(hhmm)"> Un saludo. Última edición por Carlitos; 08/03/2004 a las 12:13 |
| |||
Gracias Carlitos, sabes que para cuando lei lo que tan amablemente escribiste ya habia hecho lo siguiente, coloque al lado del input text que captura la hora, un botón, al pulsar el boton se abre una ventana pequeñita que tiene 2 select en una tabla con dos columnas, entre los dos select puse el signo ":" y al final un boton de aceptar, el primer select tiene valores del 01 al 24 y el segundo select valores del 01 al 60, al pulsar el boton aceptar, con una funcion armo la hora, copio los datos en la ventana madre (opener), en el input text de la hora y cierro la ventana. Sin embargo probaré tu código y y de estar "ok" lo pondre en el onblur del input text de la hora por sia el usuario decide escribirla y no seleccionarla y así valido que la escriba bien. Abajo copio el código que creé para seleccionar la hora: ESTE ES EL CÓDIGO QUE CONTIENE EL ARCHIVO HORA.HTM: Código PHP: Código PHP:
__________________ En la busqueda de la verdad |
| |||
Validar la hora Bueno Carlos Tomé el ejemplo que me diste lo modifique un poco y tengo tambien mi rutina de validación de horas y la quiero compartir con ustedes, el codigo del script debe pegarse debajo de <head> como ya sabemos o en un archivo javascript si es que tienen los scripts aparte, el script de la funcion es el que sigue: Código PHP: Código PHP: Solo tengo que añadir que realice cambios al archivo EscogerHora.htm, del que les hablo unas respuestas arriba de esta debido a que en el select que habia creado para la hora las opciones empezaban en 01 y terminaban en 24, cuando en realidad deben empezar en 00 y terminar en 24. Cambie tambien el select correpondiente a los minutos que empezabas en 01 y terminaba en 60, colocando como primera opcion 00 y ultima 59, y asi tenemos entonces 2 formas de que el usuario coloque la fecha, ya sea seleccionandola con el archivo del que les habla arriba, o escribiendola usando el script que les coloque aqui chao y gracias
__________________ En la busqueda de la verdad |
| |||
Me apunto a este tema Hola a todos!! He visto este tema y creo que lo que yo necesito es similar: Una forma de validar la fecha en formato dd/mm/aaaa para un <input type="text"> de un form. ¿Me podéis echar una mano? Muchas gracias Salu2 Rubén |
| |||
WOOW!!! POR SU... QUE YES CLARO POR SUPUESTO QUE PUEDES COLOCARLO EN LAS FAQ'S CARLITOS... EN CUANTO A TI RUBEN, EN LAS FAQ'S DE JAVASCRIPT EN EL REGLON DE FECHA HORA HAY UNAS RUTINAS PARA VALIDACION DE FECHAS, AUNQUE YO DE AQUI Y DE ALLA ARME LAS MIAS, TOME DE LAS FAQ'S EL CALENDARIO POR SI EL CLIENTE QUERIA ESCOGER LA FECHA Y NO ESCRIBIRLA. Y ADEMAS DE VARIOS LINKS EN INTERNET Y DE LAS FAQ'S DE JAVASCRIPT DE FECHA Y HORA TOME LAS VALIDACIONES DE LA FECHA EN EL CASO QUE EL USUARIO QUISIERA ESCRIBIR LA FECHA, SOLO TIENE QUE LLAMARLAS DESDE EL METODO ONBLUR DEL INPUT TEXT DE LA FECHA PARA QUE LAS VALIDES, Y OTRA RECOMENDACION ES QUE SI QUIERES TAMBIEN ANEXAR EL CALENDARIO COLOQUES EL FOCO EN EL INPUT TEXT DE LA FECHA AL CERRARSE LA VENTANA PARA UE TE VALIDE LO SELECCIONADO, POR SI A LAS MOSCAS Y EL USUARIO SELECCIONO UNA FECHA ANTERIOR A LA ACTUAL, (ESO EN EL CASO DE QUE SOLO PUEDA COLOCAR UNA FECHA . IGUAL O POSTERIOR A LA ACTUAL) ESPERO HAYAS ENTENDIDO, ME ENREDO UN POCO EXPLICANDO CHAO
__________________ En la busqueda de la verdad |
| |||
WOOW!!! POR SU... QUE YES CLARO POR SUPUESTO QUE PUEDES COLOCARLO EN LAS FAQ'S CARLITOS... EN CUANTO A TI RUBEN, EN LAS FAQ'S DE JAVASCRIPT EN EL REGLON DE FECHA HORA HAY UNAS RUTINAS PARA VALIDACION DE FECHAS, AUNQUE YO DE AQUI Y DE ALLA ARME LAS MIAS, TOME DE LAS FAQ'S EL CALENDARIO POR SI EL CLIENTE QUERIA ESCOGER LA FECHA Y NO ESCRIBIRLA. Y ADEMAS DE VARIOS LINKS EN INTERNET Y DE LAS FAQ'S DE JAVASCRIPT DE FECHA Y HORA TOME LAS VALIDACIONES DE LA FECHA EN EL CASO QUE EL USUARIO QUISIERA ESCRIBIR LA FECHA, SOLO TIENE QUE LLAMARLAS DESDE EL METODO ONBLUR DEL INPUT TEXT DE LA FECHA PARA QUE LAS VALIDES, Y OTRA RECOMENDACION ES QUE SI QUIERES TAMBIEN ANEXAR EL CALENDARIO COLOQUES EL FOCO EN EL INPUT TEXT DE LA FECHA AL CERRARSE LA VENTANA PARA UE TE VALIDE LO SELECCIONADO, POR SI A LAS MOSCAS Y EL USUARIO SELECCIONO UNA FECHA ANTERIOR A LA ACTUAL, (ESO EN EL CASO DE QUE SOLO PUEDA COLOCAR UNA FECHA . IGUAL O POSTERIOR A LA ACTUAL) ESPERO HAYAS ENTENDIDO, ME ENREDO UN POCO EXPLICANDO CHAO
__________________ En la busqueda de la verdad |
| |||
Hola AnaLezama y Carlitos!! La verdad es que no entiendo nada de lo que me dices . Yo lo que necesito es que el usuario introduzca una fecha (de nacimiento), que sea anterior a 1986 (por la mayoría de edad) y que se valide o quede en el formato dd/mm/aaaa, ya que hay gente que, a pesar de estar el ejemplo junto al recuadro del text, la coloca como dd-mm-aa, d-m-aa, ddmmaaaa o dmaa, con lo cual a la hora de usar, por ejemplo el script creo que era de Karlankas, de los cumpleaños, procesarlas con algún CGI para enviar felicitaciones o lo que sea, si no tienen un formato "unificado" es más problemático. Yo de programación en general tengo muy poca o nada de idea, voy aprendiendo sobre la marcha con lo que voy haciendo y gracias a los super expertos que hay en estos foros y que siempre estáis dispuestos a ayudar a los "novatos". En fin, pues ese es el problema que tengo, en la FAQ nº 13 casi se me resuelve el problema pero me falta saber qué modificar para que el año se tenga que poner con 4 dígitos, el separador como / sí he conseguido hacerlo pero los dígitos del año no. Aquí pongo el código como lo he modificado yo: <script language="JavaScript"> function esDigito(sChr){ var sCod = sChr.charCodeAt(0); return ((sCod > 47) && (sCod < 58)); } function valSep(oTxt){ var bOk = false; var sep1 = oTxt.value.charAt(2); var sep2 = oTxt.value.charAt(5); bOk = bOk || ((sep1 == "/") && (sep2 == "/")); return bOk; } function finMes(oTxt){ var nMes = parseInt(oTxt.value.substr(3, 2), 10); var nAno = parseInt(oTxt.value.substr(6), 10); var nRes = 0; switch (nMes){ case 1: nRes = 31; break; case 2: nRes = 28; break; case 3: nRes = 31; break; case 4: nRes = 30; break; case 5: nRes = 31; break; case 6: nRes = 30; break; case 7: nRes = 31; break; case 8: nRes = 31; break; case 9: nRes = 30; break; case 10: nRes = 31; break; case 11: nRes = 30; break; case 12: nRes = 31; break; } return nRes + (((nMes == 2) && (nAno % 4) == 0)? 1: 0); } function valDia(oTxt){ var bOk = false; var nDia = parseInt(oTxt.value.substr(0, 2), 10); bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt))); return bOk; } function valMes(oTxt){ var bOk = false; var nMes = parseInt(oTxt.value.substr(3, 2), 10); bOk = bOk || ((nMes >= 1) && (nMes <= 12)); return bOk; } function valAno(oTxt){ var bOk = true; var nAno = oTxt.value.substr(6); bOk = bOk && ((nAno.length == 4) || (nAno.length == 4)); if (bOk){ for (var i = 0; i < nAno.length; i++){ bOk = bOk && esDigito(nAno.charAt(i)); } } return bOk; } function valFecha(oTxt){ var bOk = true; if (oTxt.value != ""){ bOk = bOk && (valAno(oTxt)); bOk = bOk && (valMes(oTxt)); bOk = bOk && (valDia(oTxt)); bOk = bOk && (valSep(oTxt)); if (!bOk){ alert("Fecha inválida"); oTxt.value = ""; oTxt.focus(); } } } </script> Lo que tampoco se es cómo llamar a la función para que se verifique antes de enviar el form, además tengo scripts para validar el e-mail y repetirlo (onsubmit="javascript:emailCheck(this.email1.value) ;return checkPw(this)"), para cambiar todos los campos a minúsculas (onChange="javascript:this.value=this.value.toLower Case()";), y al enviar, cambiar cada 1ª letra de todas las palabras de cada campo a mayúsculas (onClick="javascript:changeCase(this.form.nombre);c hangeCase(this.form.apellidos);...). Así que tengo un lío... . Espero que alguien me pueda ayudar. No se si es mejor o más conveniente verificar la fecha al cambiar de campo (según lo ponía no me acepta "onChange") o al enviar el form. ¡¡Necesito ayuda!! Estoy hecho un lío Muchas gracias por adelantado. Salu2 Rubén |