如何在更新用户电子邮件地址的模式中包含的表单上触发事件

问题描述 投票:0回答:1

我正在使用一个旧的代码库,其中包含 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 上的提交事件,它将起作用。成功模式会显示并且电子邮件地址已更新。

我需要添加一个保存按钮,可以在输入电子邮件后除了(或代替)使用回车键之外使用该按钮。根据我目前的情况(如上所示),更新电子邮件模式关闭,但成功模式不会触发,电子邮件也不会保存。

jquery forms backbone.js bootstrap-modal
1个回答
0
投票

如果您为

submit form
而不是
submit #updateEmailInput
注册事件,则当您单击提交按钮以及在输入电子邮件输入时按 Enter 键时,都会调用处理程序。

由于该处理程序不会在其事件参数中获取对电子邮件输入的引用,因此您可以像这样读取新的电子邮件值:

this.$('#updateEmailInput').val()
© www.soinside.com 2019 - 2024. All rights reserved.