Función validaForm para validar formularios por nombres de clase.


/ Published in: JavaScript
Save to your folder(s)

Descripción: Recorre los objetos formulario buscando elementos/campos que deben validarse y que envia como parámetros. Llama a las diferentes funciones de validación, en función de los nombres de la clases introducidos.* Además, definie parámetros de opciones.**.
Recibe: Los objeto formulario del documento.
Devuelve: True si el formulario valida completo y debe enviarse y false si no.

[opcion] : Descripcion
"txtobl" : Para input text obligatorios.
"IsNumber" : Para inputs text con formato numero entero.
"IsOnlyChars" : Para inputs text con formato solo caracteres.
"Email" : Para inputs que requieren una dir. Correo
"chkobl" : Para inputs checkbox obligatorios.
"radobl" : Para inputs radio obligatorio . Nota: ponedselo al ultimo.
"selobl" : Para select NO multiple obligatorio.
NOTA: El primer option tiene que ser nulo
"multobl" : Para select multiple obligatorio.
"NIF" : Para inputs que requieren un NIF.

"pwd - PassValid" : Para inputs de password que requieren confirmar si son iguales (Necesita de dos campos, el original y la confirmación).
"pwd": Debe ir en los campo original y confirmación
"PassValid-Org" : para el original.
"PassValid-Conf": para el de confirmacion.
"fechas-": Para inputs de fechas con inicial, final, mínima y máxima.
"fechas":Para todos los inputs de fechas.
"fechas-inicio" : fecha inicial (debe ser anterior a la final)
"fechas-fin" : fecha final. (debe ser posterior a la final)
"fecha-max-dd-mm-yyyy" : Para inputs que requieren una fecha maxima. Ej class=" fecha-max-12-10-2010"
"fecha-min-dd-mm-yyyy" : Para inputs que requieren una fecha minima. Ej class=" fecha-min-12-10-2010"

"telefono-...": Para inputs de números de teléfono.
"telefono-fijo": Para inputs que reuquieren un numero de telefono fijo.
"telefono-mobil" : Para inputs que requieren un numero de mobil.

"num-min/max-...": Para inputs con un valor numerico min/ máx.
"num-min-x": Para inputs que requieren un valor numerico mínimo.
Ej class = " num-min-10 ".
"num-max-x": Para inputs que requieren un valor numerico máximo.
Ej class=" num-max-100 ".
NOTA: si queremos valores negativos el signo vadetras del numero. Ej class=" num-max-20-".
NOTA2: Este nombre de clase debe ser siempre el primero si se ponen varios.

"length-min/max-...": Para inputs que requieren longitud mínima y máxima.
"length-min-x": Para inputs de una longitud de caracteres minima.
Ej class=" length-min-4"
"length-max-x": Para inputs de una longitud de caracteres maxima.
Ej class=" length-max-6"
NOTA2: Este nombre de clase debe ser siempre el primero si se ponen varios.

**Mensajes de Error : Los valores msgType pueden ser:
'sibling' : El mensaje de error aparece al contenedor hermano al campo.
'id' : El mensaje de error aparece en el contenedor con id ="errMsg".
'alert' : El mensaje de error aparece en un alert cutre y salchichero.

Idioma: Los valores de msgLanguage pueden ser los que esten editados para cada combinacion de
[opcion] dentro del fichero xml . por defecto tenemos editados los idioma de
'es' : español , 'ca' : Catala, 'en':ingles , 'fr' : frances.


Copy this code and paste it in your HTML
  1. /**-----------------Declaración de variables globales----------------------
  2. ---------------------------------------------------------------------------
  3. --------------------------------------------------------------------------*/
  4. //Parámetros a elegir por el usuario.
  5. var msgType="sibling"; //Modo de mensaje de error
  6. var msgLanguage="ca"; //Idioma
  7. var msgXmlDoc="js/valida_form.xml"; //Archivo .xml
  8.  
  9. //Determinados por las funciones.
  10. var errMsgCat; //Categoría del mensaje de error.
  11. var todoOk; //Valida el formulario.
  12.  
  13.  
  14.  
  15. function valida_form(objForm){
  16. todoOk=true;
  17. //recorre los elementos del formulario
  18. for(var i=0; i<= objForm.elements.length-1; i++){
  19.  
  20. //Si encuentra un campo obligatorio, ejecuta la función txtobl enviando como argumento el elemento/campo.
  21. if(objForm.elements[i].className.indexOf('txtobl')!=-1){
  22. element_form=objForm.elements[i];
  23. errMsgCat='txtobl';
  24. txtoblValida(element_form);
  25. }
  26.  
  27. if(objForm.elements[i].className.indexOf('IsNumber')!=-1){
  28. element_form=objForm.elements[i];
  29. errMsgCat='IsNumber';
  30. IsANumberValida(element_form);
  31. }
  32.  
  33. if(objForm.elements[i].className.indexOf('IsOnlyChars')!=-1){
  34. element_form=objForm.elements[i];
  35. errMsgCat='IsOnlyChars';
  36. IsOnlyCharsValida(element_form);
  37. }
  38.  
  39. if(objForm.elements[i].className.indexOf('Email')!=-1){
  40. element_form=objForm.elements[i];
  41. errMsgCat='Email';
  42. EmailValida(element_form);
  43. }
  44.  
  45. if(objForm.elements[i].className.indexOf('chkobl')!=-1){
  46. element_form=objForm.elements[i];
  47. errMsgCat='chkobl';
  48. chkoblValida(element_form);
  49. }
  50.  
  51. if(objForm.elements[i].className.indexOf('radobl')!=-1){
  52. element_form=objForm.elements[i];
  53. errMsgCat='radobl';
  54. radoblValida(element_form);
  55. }
  56.  
  57. if(objForm.elements[i].className.indexOf('selobl')!=-1){
  58. element_form=objForm.elements[i];
  59. errMsgCat='radobl';
  60. seloblValida(element_form);
  61. }
  62.  
  63. if(objForm.elements[i].className.indexOf('multobl')!=-1){
  64. element_form=objForm.elements[i];
  65. errMsgCat='multobl';
  66. multoblValida(element_form);
  67. }
  68.  
  69. if(objForm.elements[i].className.indexOf('NIF')!=-1){
  70. element_form=objForm.elements[i];
  71. errMsgCat='NIF';
  72. NIFValida(element_form);
  73. }
  74.  
  75. if(objForm.elements[i].className.indexOf('pwd')!=-1){
  76. element_form=objForm.elements[i];
  77. PassValida(element_form);
  78. if(objForm.elements[i].className.indexOf('PassValid-Conf')!=-1){
  79. element_form=objForm.elements[i];
  80. errMsgCat='PassValid';
  81. PassValida2(element_form);
  82. }
  83. }
  84.  
  85. if(objForm.elements[i].className.indexOf('telefono-fijo')!=-1){
  86. element_form=objForm.elements[i];
  87. errMsgCat='telefono';
  88. telefonoFijoValida(element_form);
  89. }
  90.  
  91. if(objForm.elements[i].className.indexOf('telefono-mobil')!=-1){
  92. element_form=objForm.elements[i];
  93. errMsgCat='telefono';
  94. telefonoMobilValida(element_form);
  95. }
  96.  
  97. if(objForm.elements[i].className.indexOf('num-min-')!=-1){
  98. element_form=objForm.elements[i];
  99. errMsgCat='numero';
  100. numMinValida(element_form);
  101. }
  102.  
  103. if(objForm.elements[i].className.indexOf('num-max-')!=-1){
  104. element_form=objForm.elements[i];
  105. errMsgCat='numero';
  106. numMaxValida(element_form);
  107. }
  108.  
  109. if(objForm.elements[i].className.indexOf('length-min-')!=-1){
  110. element_form=objForm.elements[i];
  111. errMsgCat='numeroMinMax';
  112. lengthMinValida(element_form);
  113. }
  114.  
  115. if(objForm.elements[i].className.indexOf('length-max-')!=-1){
  116. element_form=objForm.elements[i];
  117. errMsgCat='numeroMinMax';
  118. lengthMaxValida(element_form);
  119. }
  120.  
  121. if(objForm.elements[i].className.indexOf('fechas')!=-1){
  122. element_form=objForm.elements[i];
  123. errMsgCat='fecha';
  124. fechasValida(element_form);
  125. if(objForm.elements[i].className.indexOf('fechas-fin')!=-1){
  126. errMsgCat='fechaComp';
  127. element_form=objForm.elements[i];
  128. fechasValida2(msgType);
  129. }
  130. }
  131.  
  132. if(objForm.elements[i].className.indexOf('fecha-max-')!=-1){
  133. element_form=objForm.elements[i];
  134. errMsgCat='fechaMinMax';
  135. fechaMaxValida(element_form);
  136. }
  137.  
  138. if(objForm.elements[i].className.indexOf('fecha-min-')!=-1){
  139. element_form=objForm.elements[i];
  140. errMsgCat='fechaMinMax';
  141. fechaMinValida(element_form);
  142. }
  143.  
  144. }
  145. return todoOk;
  146. }

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.