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 回答