jQuery chaque méthode ne retourne pas de valeur
Question
$(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;
});
});
Ici msgOnError, msgHash et msgHash sont carte que j'utiliser pour obtenir des messages pour chaque zone de texte avec ID particulier Malheureusement, chaque méthode ne retourne pas faux pour annuler la soumission du formulaire. Qu'est-ce que je fais mal ?? Je suis nouveau à jQuery, Merci
La solution
Oui, c'est exactement comment fonctionne each
. Comme il est en fait une boucle qui appelle votre fonction anonyme à chaque itération, la sortie de ces fonctions, ne quittera pas la fonction d'appel ainsi. De retour vrai et le faux ici, est correspondant en fait à la continue
et break
de la boucle, repsectively.
Vous allez devoir définir un indicateur booléen, return false (break), puis retourner la valeur de votre drapeau booléen après la each