0

基本上我正在尝试创建一个对象来处理基本的 ajax 登录表单。每次提交表单时,控制台都应记录“表单”,但目前它仅在表单加载时执行一次。我究竟做错了什么?

这是代码

Login = {

    init: function () {
        var $self = this;
        $('form').on('submit', $self.on_submit());

    },
    on_submit: function () {
        console.log('form');
        return false;
    },
    do_login: function () {
        console.log('login');
    }

}

$(document).ready(function () {

    Login.init();

});

这是测试网址

http://jsfiddle.net/srr33/

谢谢

4

3 回答 3

0

演示

$('form').on('submit', $self.on_submit);
于 2013-07-23T10:55:15.330 回答
0
.on('submit', $self.on_submit());

这是on_submit 的返回值(即false),不是函数。做 :

.on('submit', $self.on_submit);

或者

.on('submit', function() { $self.on_submit(args); });

如果需要传递参数。

于 2013-07-23T10:55:45.630 回答
0

错误在这里:

$('form').on('submit', $self.on_submit());

以正确的方式做事:

$('form').on('submit', $self.on_submit);

而不是分配事件处理程序,您正在执行函数调用

于 2013-07-23T10:55:12.510 回答