簡體   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