gpt4 book ai didi

javascript - 捕获Javascript触发的Submit事件

转载 作者:行者123 更新时间:2023-11-27 23:50:24 25 4
gpt4 key购买 nike

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

我的问题: JQuery .submit() 事件将捕获输入 type="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

The form's onsubmit event handler (for example, onsubmit="return false;") will not be triggered when invoking this method from Gecko-based applications. In general, it is not guaranteed to be invoked by HTML user agents.

所以你可以做两件事

  • 将行 Form.submit(); 更改为 $(Form).submit(); ,这样您可以在将 Form 包装到 jQuery 之前在 Form 上执行操作.
  • 或在 Submit1 按钮 $('Submit1').click() 上触发点击事件,并让事件处理程序执行其操作。

关于javascript - 捕获Javascript触发的Submit事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32764147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com