Backbone提交卡住了

Backbone submit stucked

这里是 HTML 代码:

<div id="overlay">
    <form action="/login" id="login_form">
        <input type="text" placeholder="Login" id="login_form-login">
        <input type="text" placeholder="Password" id="login_form-password">
        <input type="submit" value="Log in">
    </form>
</div>

这里是 backbone 代码:

LoginForm = Backbone.View.extend({
    el: $("#overlay"),
    events: {
        "submit #login_form" : "login",
    },
    login: function(e) {
        e.preventDefault();
        console.log("hello backbone");
    }
});

var login_view = new LoginForm();

从未调用登录函数。我知道 backbone 是关于模型和模板的,但是有没有办法将事件绑定到现有的 html 表单?

嗯,我找到了解决办法。

是正确的 - #overlay 在执行代码时还不存在。

修复如下:

$(document).ready(function(){
    var login_view = new LoginForm();
    login_view.show();
});