質問

$(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ループのcontinuebreakに対応されます。

あなたは偽(ブレーク)を返し、その後、ブールフラグを設定して、

each後にブールフラグの値を返すつもりが必要です
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top