javascript - 将事件监听器添加到表单中的提交按钮

标签 javascript html

我有一个带有提交按钮的表单,用于将表单数据发送到下一页。到目前为止,一切都很好。但现在当用户提交表单时应该执行一些 javascript 代码(出于跟踪原因)。所以我尝试设置一个事件监听器。问题是:有时代码会执行,有时会被忽略。

我设置了一个超时,发现所有大于 15 毫秒的超时都不会执行代码,并且浏览器已经在 form_test.html 页面上。

//secTimeout = 15;
button = document.getElementById('submitbutton');
button.addEventListener("click", function() {
  // setTimeout(function(){
  //   console.log('log after ' + secTimeout + 'ms');
  // }, secTimeout);

  // execute tracking tool
});
<form id="form1" action="form_test.html">
  <input type="text" name="text1">
  <input type="text" name="text2">
  <input type="text" name="text3">
  <input type="submit" id="submitbutton">
</form>

确保 js 代码每次都能运行的好方法是什么?

最佳答案

添加跟踪功能的最佳方法是以编程方式处理提交。因此,使用 a 并从 this 中获得灵感。通过以编程方式发送表单,您可以在发送之前运行您想要的任何代码。

一个小例子:

<form id="form1" action="form_test.html">
  <input type="text" name="text1">
  <input type="text" name="text2">
  <input type="text" name="text3">
  <button id="submitbutton">
</form>


button = document.getElementById('submitbutton');
button.addEventListener("click", function() {
  // execute tracking tool
  document.form1.submit();
});

关于javascript - 将事件监听器添加到表单中的提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58486102/

相关文章:

javascript - 链接为图像返回 404,但 Assets 的直接链接加载正常

javascript - Backbone.js - 自定义二传手

javascript - 使用 .val() 为表单赋值

html - CSS 拉伸(stretch)到 100% 高度

javascript - 将 div 置于图像顶部

javascript - 使用 JS 在所有文本字段中每 3 位数字后添加点

javascript - 为列表框中的选项获取 "InvalidCharacterError: String contains an invalid character"

javascript - 单击时移动文本插入点(插入符号)

html - 即使使用 float-right,元素也向左移动

javascript - 取消文件上传时删除图像预览