Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] problema validacion con $.each() e if()

Estas en el tema de problema validacion con $.each() e if() en el foro de Jquery en Foros del Web. Hola, quería ver si alguien quizás me pueda dar una mano, tengo un array creado en jquery Código HTML: var dArray = { 'Siniestro' : ...
  #1 (permalink)  
Antiguo 01/08/2013, 10:54
 
Fecha de Ingreso: abril-2011
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
problema validacion con $.each() e if()

Hola, quería ver si alguien quizás me pueda dar una mano, tengo un array creado en jquery
Código HTML:
var dArray  = {
            'Siniestro'     : $("#siniestro").val(),
            'Fecha'         : $("#fecha_auto").val(),
            'Garage'        : $("#garage").val(),
            'Asegurado'     : $("#asegurado").val(),
            'Fono'          : $("#fono").val(),
            'Email1'        : $("#email1").val(),
            'Email2'        : $("#email2").val(),
            'MarcaPatente'  : $("#marcapatente").val()
        };
y luego envío ese array a una función para verificar que todos elementos en el arrray tengan información o al menos no estén vacíos
función:
Código HTML:
function ValDatosArray(nomArray){
    $.each(nomArray, function(index, value){
        if( value == ""){
             alert("Debe ingresar el campo: " + index);
             return false;
       }else{
             return true;
       }
    });
}
pero por alguna razón siempre me devuelve undefined, y para cuando es false, pues no hay problema, pero al ser siempre undefined, aunque yo llene todos los datos no me deja avanzar, y no he podido encontrar una solución.

agradecería cualquier ayuda.

Saludos!
  #2 (permalink)  
Antiguo 01/08/2013, 12:24
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: problema validacion con $.each() e if()

En ese if coloca tambien || value == "undefined"
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 01/08/2013, 12:37
 
Fecha de Ingreso: abril-2011
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: problema validacion con $.each() e if()

Cita:
Iniciado por abimaelrc Ver Mensaje
En ese if coloca tambien || value == "undefined"
me sigue pasando lo mismo, el resultado de la función es "undefined" sin importar el resultado.

gracias por la ayuda :)
  #4 (permalink)  
Antiguo 01/08/2013, 14:18
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: problema validacion con $.each() e if()

$.each no te va a devolver ningun resultado.

Es simplemente un for en versión funcional, lo que vos necesitarías es un Array.reduce (o inject como lo llama Prototype) o tener una variable de control externa:

Código Javascript:
Ver original
  1. function ValDatosArray(nomArray){
  2.     var isValid = true;
  3.  
  4.     $.each(nomArray, function(index, value) {
  5.         if(!value) {
  6.              alert("Debe ingresar el campo: " + index);
  7.         }
  8.        
  9.         isValid = isValid && value;
  10.     });
  11.  
  12.     return isValid;
  13. }
__________________
blog | @aijoona
  #5 (permalink)  
Antiguo 01/08/2013, 14:36
 
Fecha de Ingreso: abril-2011
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: problema validacion con $.each() e if()

Gracias por las respuestas, al final pude arreglarlo con una solución algo más simple, leyendo en otros sitios, leí que el return que estaba haciendo en realidad lo único que hacía era terminar el ciclo y no hacer un return propiamente tal, por eso no estaba recibiendo nada, y de la misma forma el "else" que había para el true tampoco iba a funcionar, dejo lo que hice por si a alguien le sirve

Código Javascript:
Ver original
  1. function ValDatosArray(nomArray){
  2.     var ok = true;
  3.     $.each(nomArray, function(index, value){
  4.         if( value == "" ){
  5.             alert("Debe ingresar el campo: " + index);
  6.             ok = false;
  7.             return false;
  8.         }
  9.     });
  10.     return ok;
  11. }

Etiquetas: validacion
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 14:16.