繁体   English   中英

捕获由Javascript触发的Submit事件

[英]Capture Submit events triggered by Javascript

我正在使用JQuery提交表单以进行excel导出。 我需要能够捕获该事件并进行一些处理。

我的问题: JQuery .submit()事件将捕获输入类型为“ submit”的按钮,但不会捕获javascript form.submit();。

目标:捕获任何和所有表单提交事件,无论它们是通过“提交”按钮还是javascript form.submit()函数提交的。

要捕获我正在使用的提交事件:

$("#MainForm").submit(function (event) {
  console.log(this);
  alert("Submitted");
  event.preventDefault();
});

这将触发上述.submit()事件:

<input id="Submit1" type="submit" value="submit" />

这不会触发上述jquery .submit()事件:

$('#XLSExportLink').click(function () {
  var Form = document.getElementById('MainForm');
  AppendHiddenInput(Form, 'Export', 'xlsx', 'XLSXExportInput');
  Form.submit();
  $('#XLSXExportInput').remove();
});

根据文档https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit

从基于Gecko的应用程序中调用此方法时,将不会触发表单的onsubmit事件处理程序(例如,onsubmit =“ return false;”)。 通常,不能保证HTML用户代理会调用它。

所以您可以做两件事

  • 更改行Form.submit(); 通过$(Form).submit(); 这可以让您在将表单包装到jQuery中之前在表单上执行操作。
  • 或在Submit1按钮$('Submit1').click()上触发click事件,然后让事件处理程序执行其操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM