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

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top