Autor
|
Tema: validacion formulario (Leído 4,920 veces)
|
marcelo3d
Desconectado
Mensajes: 4
|
Buen dia, necesito colaboracion en una validacion de formularios y el codigo que tengo es este y no funciona: (es una validacion que no se dejen campos vacios y solo numeros menores a 5)
El problema es que tengo dos forms en la pagina y el codigo funciona cuando hay un solo form, pero cuando hay mas, solo verifica el primero, pero ese no me interesa que lo revise, solo me interesa el "form1".
Esto es una planilla de notas donde aparecen los estudiantes y el campo nota segun una seleccion que se hace en el primer form "form2".. Todo funciona bien, lo unico que no he podido hacer es la validacion . Les agradezco su colaboracion
<script> function comprobar(){ var mal=false; var f=false; numer=document.forms[0].Nota.length; for(a=0;a<numer;a++){ if (document.forms[0].Nota[a].value==""){document.forms[0].Nota[a].style.backgroundColor="#ffF000";mal=true;} else{document.forms[0].Nota[a].style.backgroundColor="white";} } if(mal){ alert("Aún hay criterios sin evaluar..."); f=false; return (false); } for(a=0;a<numer;a++){ if (document.forms[0].Nota[a].value>5){document.forms[0].Nota[a].style.backgroundColor="#ffF000";mal=true;} else{document.forms[0].Nota[a].style.backgroundColor="white";} } if(mal){ alert("No se permiten notas mayores a cinco (5)"); f=false; return (false); } else{ document.forms[0].submit() return (true); } } </script>
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1" onsubmit="return comprobar()" >
<input name="Nota[]" type="text" id="Nota" value="" size="3" />
aca se ingresan mas valores con campos ocultos, pero solo necesito validar el campo "Nota" *************************************************************************
|
|
|
En línea
|
|
|
|
Mr. Crowley
Desconectado
Mensajes: 343
Costa Rica
|
Hola Marcelo; siento que la validación está un poco extraña. Aquí le dejo un ejemplo para validar una sola nota o todas al mismo tiempo. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> </head> <body> <form id="1" onsubmit="return fntValidar_Form(this)"> <input type="text" id="txtNota1"> <br> <input type="submit" value="Validar"> </form> <br> <form id="2" onsubmit="return fntValidar_Form(this)"> <input type="text" id="txtNota2"> <br> <input type="submit" value="Validar"> </form> <br> <br> <input type="button" value="Validar todo" onclick="fntValidar_Todo()"> <script> //funcionar para validar solamente una nota function fntValidar_Form(objForm){ var iNota=Number(objForm.elements['txtNota'+objForm.id].value); //obtener la nota, basados en el id del form (es importante colocar IDs distintos) var blnRet=true; //valor que vamos a retornar if(iNota=='' || iNota>5 || iNota<1){ alert('Por favor, verifique la nota.'); blnRet=false; //no se procesa el form porque el dato no es valido }else{ //pasa la validacion :P } return blnRet; //retornamos true/false } //funcion para validar todas las notas function fntValidar_Todo(){ var iCantidad_Forms=document.forms.length; //contamos la cantidad de forms for(var iForm=0;iForm<iCantidad_Forms;iForm++){ //recorremos los forms var objForm=document.forms[iForm]; //almacenamos el form en la variable var iCantidad_Elementos=objForm.elements.length; //contar la cantidad de elementos //recorrer todos los elementos del form for(var iElemento=0;iElemento<iCantidad_Elementos;iElemento++){ //verificamos que el elemento sea tipo text (no vamos validar un boton :/) if(objForm.elements[iElemento].type=='text'){ //almacenamos el valor del campo var iNota=objForm.elements[iElemento].value; //validar el campo if(iNota=='' || iNota>5 || iNota<1){ alert('Por favor, verifique las notas ingresadas.'); return; //abandonamos la ejecucion } } } } //mostramos un mensaje en caso de que todo sea correcto alert('Todas las notas estan bien :P'); } </script> </body> </html>
Al rato esté un poco extenso, pero usted lo adapta. Mi intención es que entienda el código a la perfección. Espero le sirva de algo. Saludos Nota: debe validar los valores NaN (cuándo se coloca una letra en vez de un número) o programar el campo de texto para que únicamente acepte números.
|
|
|
En línea
|
|
|
|
marcelo3d
Desconectado
Mensajes: 4
|
Gracias por dedicarle un tiempo a mi codigo, no sabes en verdad cuanto lo agradezco. voy echarle un vistazo para adaptarlo, pero te cuento que ya solucione mi problemilla, simplemente era que cuando tengo varios form pongo - y me valida el primero, [1] para el segundo y asi susecivamente. De algo sirven las horas sin dormir. Tu explicacion del codigo esta muy buena, lo tendre en cuenta ya que no soy muy diestro en esto
|
|
|
En línea
|
|
|
|
Mr. Crowley
Desconectado
Mensajes: 343
Costa Rica
|
Claro, no hay problema Así es esto, al principio hay que "matarse" para aprender, ya después las cosas salen más fácilmente
|
|
|
En línea
|
|
|
|
dark_sargon
Desconectado
Mensajes: 534
CJ
|
Cabe recordar que es bueno hacer doble validación ya que algun usuario puede tener desactivados los scripts en javascript pero aun asì es bueno dejarlo para la mayorìa que si los tienen habilitados.
La segunda validación se haría en el archivo que recibe los datos del formulario. En tu caso el .php Seria sencillo, tomar lo que tiene en javascript y 'traducirlo' para PHP.
|
|
|
En línea
|
|
|
|
marcelo3d
Desconectado
Mensajes: 4
|
Buen dia, en esto de programacion, cuando se resuelve un problema siempre aparece otro y ahora tengo el siguiente: Tengo una lista de estudiantes con nombre y falla (justificada e injustificada) cuando selecciono fecha me coloca a cada persona el dato (fecha) pero la idea es que solo me envie las fallas de las personas que seleccione ya sea justificada o injustificada y que los otros no los envie. Lo tengo así pero escucho sugerencias: De momento me esta enviando todo el listado . estos son los 2 radio boton: <input type="radio" name="cod_falla" value="1" /> <span class="thm2"><span class="n">Injustificada</span></span> <input type="radio" name="cod_falla" value="0" /> GRACIAS POR SUS APORTES
|
|
|
En línea
|
|
|
|
Mr. Crowley
Desconectado
Mensajes: 343
Costa Rica
|
Hmmm.. supongo que arriba, donde aparece el calendario, es donde se asigna la fecha para todos los estudiantes. En ese caso eliminaria el campo fecha que tiene cada estudiante. Para que colocarlo otra vez si el dato es el mismo?
Tambien, pondria una barra de busqueda. Por ejemplo, si solo Fulanito De Tal falto, entonces me gustaria buscarlo a el directamente, sin tener que hace scroll o leer el resto de nombres.
En cuanto a los radios. Hmmm no me parece mal, pero probablemente yo lo hubiese hecho con un select que tenga tres opciones: 1. -- Seleccionar -- (esta opcion no haria nada) 2. Justificada 3. Injustificada.
De repente sea importate agregar un campo para colocarle una observacion a cada falta. Por ejemplo, si justifico una falta.. me gustaria poner algo como: "Justificado con comprobante medico #1234567890, verificar el documento en el expediente fisico" (o algo similar).
|
|
|
En línea
|
|
|
|
marcelo3d
Desconectado
Mensajes: 4
|
Buen dia, como siempre gracias por tus aportes:
1- Lo de la fecha en cada uno solo era para comprobar que efectivamente me la estaba asignando 2- Lo del select tambien es buena idea y mucho mejor la de la busqueda
Pero suponiendo que todo esto este listo, como puedo hacer para enviar a la base de datos solo los dos o tres que no asistieron determinado dia. De momento puedo enviar uno por uno pero si son varios me gustaria se envien en un solo grupo. O los envio todos pero no justifica llenar la base de datos por un par, Lo que no he podido es solo enviar los seleccionados
|
|
|
En línea
|
|
|
|
Mr. Crowley
Desconectado
Mensajes: 343
Costa Rica
|
Hola Disculpe que no escriba con acentos, estoy en un teclado solo ingles y me da pereza configurarlo jejeje. En el caso de hacerse con select, lo que yo haria seria: 1. Recorrer todos los select que hay en la pagina. 2. Si el valor del select es 1 o 2 (Justificada o Injustificada, por ejemplo) entonces almaceno ese dato. Recordar que el select va a tener 3 opciones (Seleccionar, Justificada e Injustificada). 3. Continuo con el ciclo, repitiendo lo mismo hasta llegar al final. Bueno, esto seria por medio de Ajax; no se como lo estara haciendo usted. La verdad hace tiempo me olvide de procesar formularios enviado datos a otra pagina :$
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con la validación de un formulario con javascript
Desarrollo Web
|
janisorna
|
9
|
5,930
|
3 Enero 2012, 20:22 pm
por janisorna
|
|
|
MOVIDO: Problema con la validación de un formulario con javascript
Java
|
Leyer
|
0
|
1,592
|
30 Diciembre 2011, 19:18 pm
por Leyer
|
|
|
Validación e-mail formulario
PHP
|
el-brujo
|
4
|
3,301
|
12 Mayo 2012, 03:21 am
por jhonatanAsm
|
|
|
validación formulario html5
Desarrollo Web
|
kakashi20
|
1
|
1,987
|
21 Febrero 2013, 23:34 pm
por Novlucker
|
|
|
Validacion de formulario con javascript
Desarrollo Web
|
Sistematic
|
9
|
3,550
|
18 Agosto 2014, 02:49 am
por Sistematic
|
|