0

ユーザーがボタンをクリックすると送信されるようにフォームを作成しようとしていますが、送信ボタンを押していなくても機能し続けるという問題があります。ここに私のコードがあります

$(function () {
var url, container, form,
    View = {
        init: function () {
            container   = $('.container');
            form        = $('.search#form');
            console.log(form);
            View.loadViews();
            $(document).on('submit', '#form', View.findView());
        },
        findView: function () {
            console.log('helllo');
            return false;
        },
        loadViews: function (view) {
            $(container).load('search.html');
        }
    };
View.init();
});

上記のコード$(document).on('submit', '#form', View.findView());では、ユーザーが送信ボタンをクリックしたときに呼び出したいのに対し、findView() メソッドを呼び出し続けます。どうすればこれを修正できますか?

4

2 に答える 2

4

を使用してバインドすると$(document).on('submit', '#form', View.findView());、本質的に関数を呼び出し、送信イベントを関数が返すものにバインドしようとしますが、これは正しくありません。findView()は を返すのでfalse、これは次のように言うのと同じです$(document).on('submit', '#form', false);

View.findView()以下のようにバインドする必要があります。

$(document).on('submit', '#form', View.findView); // note, no () at the end
于 2012-11-04T13:34:39.467 に答える
1

関数の戻り値ではなく、関数の参照を渡す必要があります。

$(document).on('submit', '#form', View.findView);

于 2012-11-04T13:35:02.757 に答える