0

jqueryのそれぞれを使用して、フォーム内のすべての入力テキストフィールドをループしています。合計4つの入力フィールドがあります。しかし、私は次のエラーが発生しています

Cannot call method 'toLowerCase' of undefined in jquery.js:2153

これが私のコードです

loadViews: function (view, flag) {
            if( flag ) {
                if ( View.validate() ) {
                    $('.search').animate({left: '-350px'}, 100, 'easeInOutQuad', function () {
                        container.empty().load(view + '.html');
                    });
                } else {

                }
            } else {
                container.empty().load(view + '.html');
            }
        },
        validate: function () {
            $.each('#form input[type="text"]', function (i) {
                console.log($(this).val());
            });
            return false;
        }

私は何が間違っているのですか?

4

1 に答える 1

1

あなたはコレクションを期待するselectorときに渡しています。$.eachAPIドキュメントから:

$ .each()関数は$(selector).each()と同じではありません。これは、jQueryオブジェクトに対して排他的に反復するために使用されます。$ .each()関数は、マップ(JavaScriptオブジェクト)であろうと配列であろうと、任意のコレクションを反復処理するために使用できます。

これを修正するには、次のようにします。

$('#form input[type="text"]').each(function (i, elem) {
    console.log($(this).val());
});

またはこれ:

var inputs = $('#form input[type="text"]');
$.each(inputs, function (i, elem) {
    console.log($(this).val());
});
于 2012-11-04T15:51:49.277 に答える