gpt4 book ai didi

javascript - 确定哪个元素触发了表单提交事件

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:40 27 4
gpt4 key购买 nike

我会先说我非常熟悉点击事件,并且知道我可以在表单提交按钮上注册点击事件,正如许多其他答案所解释的那样。我的问题更深一层。

表单可以通过点击提交之外的其他方式提交:我在想当用户在专注于输入/选择时按下回车键,或者甚至在专注于提交按钮本身时按下空格键或回车键……我会希望能够获得对提交表单的元素的引用。

This answer似乎有希望,但我不确定如何“看到”他提到的值(value)观。我做了 a codepen展示。 *编辑:我更新了代码笔以反射(reflect)下面接受的答案。

看起来答案实际上也是不准确的,因为当用户提交表单时,浏览器会在表单中的第一次提交时触发点击事件,而不是元素之后的第一次提交触发了提交(至少当我在 Chrome/Firefox/Safari 中运行 Codepen 时)。

为了说明为什么这是必要的,我正在研究 Asp.NET site where every page's content is encapsulated in a monolithic form .我在异步提交的页脚中添加了一个电子邮件订阅表单……这意味着我需要对事件执行 e.preventDefault() 并且还想避免意外提交,如果表单实际上是从其他地方提交,例如顶部的搜索栏或我不知道的表单。

最佳答案

您可以使用 document.activeElement 这将适用于点击以及当用户切换到按钮并按下回车按钮时。

监听表单上的提交事件,然后在回调内部,引用 document.activeElement,它将是用户点击或跳转到的按钮。

例子: http://codepen.io/anon/pen/KVoJrJ

关于javascript - 确定哪个元素触发了表单提交事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35027383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com