jQuery ogni metodo non restituisce valore
Domanda
$(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;
});
});
Qui msgOnError, msgHash e msgHash sono carta che uso per ottenere i messaggi per ogni casella di testo con particolare ID Purtroppo ogni metodo non restituisce falso per annullare presentazione del modulo. Che cosa sto facendo di sbagliato ?? Sono nuovo di jQuery, grazie
Soluzione
Sì, è esattamente come funziona each
. Dal momento che è in realtà un ciclo che chiama la funzione anonima in ogni iterazione, uscendo queste funzioni, non uscire dalla funzione di chiamata pure. Restituendo vero e falso qui, è effettivamente corrispondente alla continue
e break
del ciclo for, repsectively.
Avrai bisogno di impostare un flag booleano, per poi tornare false (pausa), e quindi restituire il valore della vostra bandiera booleano dopo la each