我正在使用一个旧的代码库,它有一个Backbone JS,jQuery和Bootstrap的技术堆栈。我有一个引导模式,我正在使用更新我的服务器上的电子邮件地址。我不知道如何以我想要的方式触发我的Backbone JS事件。
<div class="modal fade" id="modalUpdateEmail" role="dialog" aria-labelledby="update-email-title">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="updateEmailForm">
<div class="modal-body">
<label for="email">Please enter the email address you want to use:</label><br />
<input type="email" id="updateEmailInput" name="email" class="email-sm" title="eg. [email protected]">
</div>
<div class="modal-footer">
<div class="margin-bottom50">
<button id="btn-save-email" type="submit" class="btn btn-primary" data-dismiss="modal">Save</button>
<button id="btn-close-preferences" type="button" class="btn btn-default pull-right"
data-dismiss="modal">Cancel</button>
</div>
</div>
</form>
</div>
</div>
</div>
"submit #updateEmailInput": function (e) {
var email = e.currentTarget[0].value;
var dispute_name = this.model.get("dispute_name");
this.model.set("party_contact_email", this.email);
let self = this;
this.model
.updatePartyContactEmail(dispute_name, email)
.done(function (response) {
self.$("#success-on-party-email-updated").modal("show");
})
.fail(function (err) {
self.$("#error-on-party-contact-updated").modal("show");
});
},
如果我只有HTML中的电子邮件输入和表单id=“updateEmailForm上的提交事件,它将工作。成功模式显示,电子邮件地址更新。
我需要添加一个保存按钮,可以在键入电子邮件后除了(或代替)使用回车键之外使用。使用我目前拥有的(如上所示),更新电子邮件模式关闭,但成功模式不会触发,电子邮件也不会保存。
1条答案
按热度按时间mepcadol1#
如果您为
submit form
而不是submit #updateEmailInput
注册事件,则当您单击提交按钮以及在键入电子邮件输入时按enter时,都会调用处理程序。由于该处理程序不会在其事件参数中获取对电子邮件输入的引用,因此您可以像这样读取新的电子邮件值: