Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2011, 09:51
rjulio21
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 14 años
Puntos: 16
Pregunta problema con validacion

hola buenas, estoy validando un formulario con javascript. y me esta dando un problema, que no logro conseguir, pues la funcion me hace las validaciones pero sin embargo me sigue enviando el formulario. no se detiene a hacer el focus como deberia.
Las validaciones son un poco no comunes debido a la lógica necesaria para el formulario segun los requerimientos. Pues hay 2 campos (que es en los que me sale el problema) que dependiendo de la seleccion de un radio previo aparecen o se mantienen ocultos. Si el radio es SI aparecen para que se les ponga un monto. si es no se mantienen oculto y deben tener un valor igual a 0. Y es alli en donde sale el problema. Mostrare el codigo.
A ver si alguien tiene idea.

En la pagina llamo al formulario asi
Código HTML:
Ver original
  1. <form action=\"porcenstajeComision.php\" method=\"post\" onsubmit=\"return validarForm(this);\">\n
los "\" es porque la impresion del HTML lo hago desd php.
La funcion de validacion en javascript es la siguiente:
Código Javascript:
Ver original
  1. function formEmpr(form){
  2.     bandera=0;
  3.     if(validarRif(form.tipoRif,form.rif,form.rifFinal)){
  4.         if(marcarObligatorio(form.tipoEmp))
  5.         if(marcarObligatorio(form.nombre))
  6.         if(marcarObligatorio(form.direccion))              
  7.         bandera=2;
  8.         if (bandera==2){
  9.            
  10.             if(form.infruc.value!=0){
  11.                 if(numerico(form.infruc))
  12.                     bandera=3; 
  13.             }
  14.             if(form.porcent.value!=0){
  15.                 if(numerico(form.porcent))
  16.                 bandera=3
  17.             }
  18.             if(bandera==3)
  19.                 bandera=1
  20.            
  21.         }else{
  22.             alert("¡los campos marcados con asterisco (*) son obligatorios!");
  23.             return false;
  24.         }  
  25.         if (bandera==1){
  26.             alert("Formulario completo")
  27.             return false;
  28.         }  
  29.            
  30.     }else{
  31.         return false;
  32.     }//fin if validarRif
No es tal como la tenia pensada. La bandera igualada a 3 y eso. son cosas que agregue luego viendo si conseguia el error. Pero en fin. creo que se entiende. En la funcion llamo a "marcarObligatorio" q valida los campo y los marca en caso de no ser llenados, todo funciona bien. luego llamo a "numerico" que es la que me trae problema. Esta funcion la uso en distintos formularios sin problemas, el error da aqui que es lo que ya explique. La funcion lo unico que hace es validar q el campo solo tenga numeros. Es la siguiente:
Código Javascript:
Ver original
  1. function numerico(camp){
  2.     var expr= /^(?:\+|-)?\d+$/;
  3.     if (camp.value != ''){
  4.         if (camp.value.match(expr)) {
  5.           return true
  6.         }else{
  7.               alert("El campo solo puede contener caracteres numericos");
  8.               camp.value='';
  9.               camp.focus();
  10. //            return false;
  11.         }
  12.     }
  13.     //else{return false;}
  14. }//fin funcion numerico
Como explique anteriormente. Es una validación que no deberia ser tan compleja, las funciones las e usado por separado y funcionan. el detalle esta cuando quiero validar esos campos ocultos que si toca llenarlos no puedan ingresar letras ni caracteres especiales. Muchas gracias por su tiempo. Si me ven el error lo agradezco.