質問
$(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;
});
});
ここでmsgOnError、msgHashとmsgHashは、私は、特定のIDを持つ各テキストボックスのメッセージを取得するために使用されているマップ 残念ながら、それぞれの方法は、フォームの送信をキャンセルする場合はfalse戻りません。私が間違って何をやっています?私はjQueryのに新しいです、感謝
解決
はい、それは正確にどのようにeach
作品です。それは実際にそれらの機能を終了し、各反復であなたの匿名関数を呼び出すループなので、同様に呼び出し元の関数を終了しません。ここでは、真と偽戻って、実際にrepsectively、forループのcontinue
とbreak
に対応されます。
あなたは偽(ブレーク)を返し、その後、ブールフラグを設定して、
each
後にブールフラグの値を返すつもりが必要です 所属していません StackOverflow