[英]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.