Foros del Web » Programando para Internet » Javascript »

Función incompleta para validar formularios

Estas en el tema de Función incompleta para validar formularios en el foro de Javascript en Foros del Web. Hola amig@s, Tengo la siguiente función para validar formularios de forma genérica, el problema es que no toma en cuenta los select, es decir, aunque ...
  #1 (permalink)  
Antiguo 18/04/2013, 06:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Función incompleta para validar formularios

Hola amig@s,

Tengo la siguiente función para validar formularios de forma genérica, el problema es que no toma en cuenta los select, es decir, aunque no se seleccione nada en un select "marcado" como requerido, lo da como bueno, aquí la función:

Código Javascript:
Ver original
  1. function validarFormGenerico( form ) {
  2.  
  3.   var error = false;
  4.   var j     = -1;
  5.   var chain = '';
  6.  
  7.   for ( var i = 0; i < form.elements.length; i++ ) {
  8.     if ( form.elements[i].alt == 'requerido' && ( isEmpty(Trim(form.elements[i].value)) || ( form.elements[i].type == 'checkbox' && form.elements[i].checked == false ) ) ) {
  9.       if ( j < 0 ) {
  10.         j   = i;
  11.       }
  12.       chain = chain +' - ' + form.elements[i].title + '\n';
  13.       error = true;
  14.     }
  15.   }
  16.  
  17.   if ( error ) {
  18.     alert( 'Los siguientes campos no pueden quedar\nincompletos para enviar el formulario:\n\n' + chain );
  19.     form.elements[j].focus();
  20.     return false;
  21.   }
  22.   else {
  23.     return true;
  24.   }
  25. }


Bien, un ejemplo de formulario para usar con esta función sería algo así (solo es un ejemplo):

Código HTML:
Ver original
  1. <form enctype="multipart/form-data" method="post" action="xxxxx.php" name="formulario">
  2. <table border=0 align="center">
  3. <tr>
  4. <td>Nombre:</td>
  5. <td><input type="text" name="nombre" id="nombre" alt="requerido" title="Nombre"></td>
  6. </tr>
  7. <tr>
  8. <td>Apellidos:</td>
  9. <td><input type="text" name="apellidos" id="apellidos" alt="requerido" title="Apellidos"></td>
  10. </tr>
  11. <tr>
  12. <td>E-mail:</td>
  13. <td><input type="text" name="email" id="email" alt="requerido" title="E-mail"></td>
  14. </tr>
  15. <tr>
  16. <td>Teléfono:</td>
  17. <td><input type="text" name="telefono" id="telefono" class="input" alt="requerido" title="Teléfono"></td>
  18. </tr>
  19. <tr>
  20. <td class=dato">País:</td>
  21. <td class="campo"><select name="pais" id="pais" class="input" alt="requerido" title="País">
  22. <option value="">-- Elige una opción --</option>
  23. <option value="País 1">País 1</option>
  24. <option value="País 2">País 2</option>
  25. <option value="País 3">País 3</option>
  26. <option value="País 4">País 4</option>
  27. <option value="País 5">País 5</option>
  28. <option value="País 6">País 6</option>
  29. </td>
  30. </tr>
  31. <tr>
  32. <td>Sexo:</td>
  33. <td><select name="sexo" id="sexo" alt="requerido" title="Sexo">
  34. <option value="">- Elige -</option>
  35. <option value="Hombre">Hombre</option>
  36. <option value="Mujer">Mujer</option>
  37. </td>
  38. </tr>
  39. <tr>
  40. <td>Suscripción al boletín: </td>
  41. <td><input type="checkbox" name="boletin" id="boletin" alt="requerido" title="Boletín" value="Boletín"></td>
  42. </tr>
  43. <tr>
  44. <td>Suscripción a las novedades: </td>
  45. <td><input type="checkbox" name="novedades" id="novedades" alt="requerido" title="Novedades" value="Novedades"></td>
  46. </tr>
  47. <tr>
  48. <td>Recibir e-mail: </td>
  49. <td><input type="radio" value="si" name="recibir_email" id="recibir_email" alt="requerido" title="Recibir e-mail"><input type="radio" value="No" name="recibir_email" id="recibir_email" alt="requerido" title="Recibir e-mail"> No</td>
  50. </tr>
  51. <tr>
  52. <td colspan="2">Se admiten archivos en formato pdf, doc o docx y con un tamaño no superior a 1 Mb</td>
  53. </tr>
  54. <tr>
  55. <td>Archivo:</td>
  56. <td><input type="file" name="archivo" id="archivo" alt="requerido" title="Archivo"></td>
  57. </tr>
  58. <tr>
  59. <td>Comentarios:</td>
  60. <td><textarea name="comentarios" cols="60" rows="6" id="comentarios" alt="requerido" title="Comentarios"></textarea>
  61. </td>
  62. </tr>
  63. <tr>
  64. <td colspan="2" align="center"><div align='center' class='aceptar'><input type="button" value="Enviar" onclick="javascript:validarFormGenerico(document.formulario);" alt="enviar" title="enviar"/>
  65. </td>
  66. </tr>
  67. </form>

Entonces, la pregunta es ¿qué habría que añadir para que valide todo tipo de campos?

Muchas gracias por anticipado.

.
  #2 (permalink)  
Antiguo 26/04/2013, 08:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Función incompleta para validar formularios

Hola de nuevo!!

¿Nadie me puede echar una mano con esto?

Espero que sí, para los que sabéis bien JavaScript no creo que sea difícil.

Gracias de antemano.

.

Etiquetas: campos, formulario, formularios, incompleta, input, php, select, validar+form
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 18:56.