JavaScript 和 HTML 表单 : Which button is the submitter?

标签 javascript forms submit

我正在编写一个 JavaScript 函数来预处理表单数据。我需要知道的一件事是使用了多个提交按钮中的哪一个。

大致而言,该脚本的轮廓如下。

var form=document.querySelector('form#test');
form.onsubmit=processForm;
function processForm() {
    //  how did I get here
}

<form id="test">
    <!-- usual stuff -->
    <button type="submit" name="check">Check</button>
    <button type="submit" name="doit">Do Stuff</button>
</form>

我知道我可以将该函数附加到各个提交按钮,但如果我将其附加到表单本身,它会更有弹性。

是否有表单属性或其他方法来检查使用了哪个提交按钮?

谢谢

最佳答案

您可以附加click每个 <button> 的处理程序元素,创建一个变量来存储点击的 button name属性或对元素的引用,访问 submit 处的属性或元素事件

function processForm(e) {
  e.preventDefault();
  console.log(curr) // `curr`: `name` of clicked `button"` element
}

var submit = document.querySelectorAll("button[type=submit]");
var curr;
for (var i = 0; i < submit.length; i++) {
  submit[i].onclick = function(e) {
    curr = e.target.name; // store reference to `name`, or element
  }
}

关于JavaScript 和 HTML 表单 : Which button is the submitter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548247/

相关文章:

javascript - 为什么 deferred 的 'then' 回调先于嵌套 AJAX 的成功回调?

javascript - 为什么我的 Bootstrap 3.1.1 'Collapse' 元素会自动关闭?

php - 在 PHP 中从操作表单调用函数的最佳方法是什么?

jquery - 如何知道提交时点击了哪个提交输入?

jQuery 检查表单输入是否为空(除了一个)

javascript - 导出模块对象并导入该模块的特定属性

javascript - 模态打开时在 Bootstrap 模态窗口中自动播放视频

forms - 是否可以使用 CSS3 制作尖头按钮(类似苹果)?

javascript - 获取视频列表 youtube api

c++ - 在 Qt 桌面应用程序中显示主窗体后执行操作