Foros del Web » Programando para Internet » Javascript »

problema con validacion

Estas en el tema de problema con validacion en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/11/2011, 09:51
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
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.
  #2 (permalink)  
Antiguo 20/11/2011, 09:53
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: problema con validacion

Por si no quedo claro. la validacion
Código Javascript:
Ver original
  1. if(form.infruc.value!=0){
Es porque los campos cuando estan ocultos por defecto valen 0. si tienen un valor diferente es porq se mostraron y le pusieron data. de lo contrario no interesa validarlos.
  #3 (permalink)  
Antiguo 20/11/2011, 12:59
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 72
Respuesta: problema con validacion

Cita:
Iniciado por rjulio21 Ver Mensaje
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.
Se necesita cancelar el evento por defecto, esto tal vez te puede servir.

http://www.forosdelweb.com/f13/probl...-vacio-955258/
  #4 (permalink)  
Antiguo 20/11/2011, 21:02
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: problema con validacion

disculpa. pero segun lo que tu dices el código quedaria de esta manera:
Código Javascript:

Código Javascript:
Ver original
  1. function formEmpr(form,event){
  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.                         event.preventDefault();
  14.                     }  
  15.                 }
  16.                 if(form.porcent.value!=0){
  17.                     if(numerico(form.porcent)){
  18.                         bandera=3
  19.                         event.preventDefault();
  20.                     }
  21.                 }
  22.                 if(bandera==3){
  23.                     bandera=1
  24.                    
  25.                 }
  26.             }else{
  27.                 alert("¡los campos marcados con asterisco (*) son obligatorios!");
  28.                 return false;
  29.             }  
  30.             if (bandera==1){
  31.                 alert("Formulario completo")
  32.                 return false;
  33.             }  
  34.                
  35.         }else{
  36.             return false;
  37.         }//fin if validarRif
  38.        
  39.        
  40.        
  41.        
  42.     }//fin funcion formEmp=====================================================
entoncs que
Puse el codigo asi. e iwal me sigue dando el mismo error. Aunque sinceramente no se porq cancelar el evento. Yo jamas e cancelado el evento onSubmit en los formularios. Podrias decirme porq es necesario? gracias.
  #5 (permalink)  
Antiguo 20/11/2011, 21:20
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Respuesta: problema con validacion

Disculpa, rjulio21, pero, ¿donde esta la función validarForm?

No la veo.

Etiquetas: formulario, funcion, html, php
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 23:24.