jQuery cada método no devuelve valor
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
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