Javascript 说出按下的按钮是从什么形式来的

Javascript 说出按下的按钮是从什么形式来的,javascript,html,Javascript,Html,我有一个单页应用程序,它使用多个表单来显示数据。大多数表单都有相同的输入字段。我使用JavaScript创建表单输入字段——对所有表单只做一次 我可以通过查看表单元素form1.elements[“varietyName”].options[form1.elements[“varietyName”].selectedIndex].text或表单元素是否已在form2上更改来判断更改了哪些表单和字段 我知道如何通过JavaScript创建一个按钮并将其填充到多个表单上,但我如何知道该按钮是按在哪个

我有一个单页应用程序,它使用多个表单来显示数据。大多数表单都有相同的输入字段。我使用JavaScript创建表单输入字段——对所有表单只做一次

我可以通过查看表单元素
form1.elements[“varietyName”].options[form1.elements[“varietyName”].selectedIndex].text
或表单元素是否已在form2上更改来判断更改了哪些表单和字段

我知道如何通过JavaScript创建一个按钮并将其填充到多个表单上,但我如何知道该按钮是按在哪个表单上的呢

我不能给我的按钮一个
onclick
事件,因为它将出现在form1和form2上。我也不希望在单击按钮时将表单提交给服务器,因此我无法使用该按钮。

您可以使用该按钮查找与当前元素最近的表单。例如:

Array.from(document.querySelectorAll('input')).forEach(input=>{
input.addEventListener('click',e=>{
console.log(例如currentTarget.closest('form').id)
})
})

如果您的目的只是寻找封装按钮的表单,那么这很容易。考虑到您有buttonElement,您可以找到它的parentNode并递归检查它的标记名,直到找到formElement

但事实上我认为你搞错了,你最好先跟踪for submit事件,然后再跟踪button click事件


和平。

如果忽略IE,您应该检查并重试。
此.nest('form')