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

7ivaypg9  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(128)

我正在使用一个旧的代码库,它有一个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上的提交事件,它将工作。成功模式显示,电子邮件地址更新。
我需要添加一个保存按钮,可以在键入电子邮件后除了(或代替)使用回车键之外使用。使用我目前拥有的(如上所示),更新电子邮件模式关闭,但成功模式不会触发,电子邮件也不会保存。

mepcadol

mepcadol1#

如果您为submit form而不是submit #updateEmailInput注册事件,则当您单击提交按钮以及在键入电子邮件输入时按enter时,都会调用处理程序。
由于该处理程序不会在其事件参数中获取对电子邮件输入的引用,因此您可以像这样读取新的电子邮件值:

this.$('#updateEmailInput').val()

相关问题