次のコードを使用してビューを作成しています。
LoginForm = Backbone.View.extend({
tagName :"form"
,id : "login-form"
,className :"navbar-form"
,initialize: function () {
this.model = new StackMob.User();
this.render();
}
,render: function () {
$(this.el).html(this.template());
return this;
}
,events : {
"change" : "change"
,"submit #login-form" : "login"
}
,login : function( event) {
event.preventDefault();
var self = this;
this.model.login(true, {
success: function( model) {
app.alertSuccess( "User logged in");
self.render();
}
,error: function( model, response) {
app.alertError("Could not login user: " + response.error_description);
}
});
event.currentTarget.checkValidity();
return false;
}
// rest of code
そしてテンプレート:
<input name="username" class="span2" type="email" placeholder="Email" required >
<input name="password" class="span2" type="password" placeholder="Password" required >
<button id="login-button" type="submit" class="btn">Sign in</button>
ボタンにバインドすると、ログイン機能が呼び出されます。フォーム送信イベントにバインドすると、ログイン関数が呼び出されません。id & form タグがテンプレートの一部である場合、バインドするフォームを取得することもできますが、これはここでやりたいことではありません。
この場合、フォーム送信時にバインドするにはどうすればよいですか?