Posted By

alberomo on 08/29/11


Tagged

forms classroom LaVioleta ExamenJS


Versions (?)

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


 / Published in: JavaScript
 

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.

  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  

You need to login to post a comment.