微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 确定触发表单提交事件的元素

我将在前言中说我非常熟悉点击事件,并知道我可以在表单提交按钮上注册点击事件,因为许多其他答案都会解释.我的问题更深层次.

表单可以通过其他方式提交,而不是点击提交:我想当用户按下输入同时专注于输入/选择,甚至按空格键或输入时专注于提交按钮本身…我想成为能够获得对提交表单的元素的引用.

This answer似乎有希望,但我不确定如何“看到”他提到的价值观.我做了a codepen演示. *编辑:我更新了codepen以反映下面接受的答案.

似乎答案实际上是不准确的,因为当用户提交表单时,浏览器会触发表单中第一次提交的click事件,而不是触发提交的元素之后的第一次提交(至少在我运行时) Chromepen / 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐