jQuery Jede Methode nicht zurück Wert
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
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