Frage

$(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;
    });
});

Hier msgOnError, msgHash und msgHash sind Karte, dass ich Nachrichten mit bestimmten ID für jedes Textfeld zu bekommen verwenden Leider ist jede Methode nicht false zurück Einreichung des Formulars aufzuheben. Was mache ich falsch ?? Ich bin neu in jQuery, Dank

War es hilfreich?

Lösung

Ja, das ist genau, wie each funktioniert. Da es tatsächlich eine Schleife ist, die Ihre anonyme Funktion in jeder Iteration ruft, diese Funktionen Verlassen wird die anrufende Funktion auch nicht verlassen. Wiederkehrende wahr und falsch hier, entspricht tatsächlich dem continue und break der for-Schleife, repsectively.

Sie gehen zur Notwendigkeit, eine boolean-Flag zu setzen, dann return false (Pause) und dann wieder den Wert Ihrer boolean Flag nach dem each

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top