Pregunta

$(document).ready(function() {

    $('#commentForm').submit(function(){

        return $('input[type=text], textarea').each(function(index){

            if($(this).attr('value') == ""){
                alert(msgHash[$(this).attr('id')]);
                return false;

            }else{

                if(!$(this).attr('value').match(validateHash[$(this).attr('id')])){
                    //Do nothing
                    alert(msgOnError[$(this).attr('id')]);
                    return false;
                }
            }
        });

        return true;
    });
});

Aquí msgOnError, msgHash y msgHash son un mapa que utilizo para obtener mensajes para cada cuadro de texto con especial ID Por desgracia cada método no devuelve falso para cancelar la presentación del formulario. Qué estoy haciendo mal ?? Soy nuevo en jQuery, gracias

¿Fue útil?

Solución

Sí, eso es exactamente cómo funciona each. Puesto que es en realidad un bucle que llama a su función anónima en cada iteración, salir de esas funciones, no va a salir de la función de llamar así. Volviendo verdadero y falso aquí, es en realidad corresponde a la continue y break del bucle, repsectively.

Vas necesidad de establecer un indicador booleano, a continuación, devuelve falso (rotura), y luego devolver el valor de su bandera booleana después de la each

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top