私はビューを作成するには、次のコードを使用しています:提出イベントをフォームにバインドするバックボーンを取得するにはどうすればよいですか?
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 &フォームタグがテンプレートの一部である場合は、フォームを取得することもできます。これはここでやりたいことではありません。
この場合、フォーム送信時にバインドするにはどうすればよいですか?
関連ドキュメントは[delegateEvents'](http:// backbonejs。org /#View-delegateEvents)documentation: "セレクタを省略すると、イベントはビューのルート要素'(this.el) 'にバインドされます。" –
残念ながら、これは彼がやっていたことを排除するものではありません。まあ、それはまだ十分な情報だと思います。 – Loamhoof
選択なしで送信してください! –