使用 jQuery 检测提交事件的来源

Detecting where a submit event came from with jQuery

本文关键字:事件 提交 jQuery 检测 使用      更新时间:2023-09-26

我需要检测用户如何提交表单以生成一些统计信息。他们可以在输入时按回车键,也可以单击提交按钮。

我尝试将单击事件绑定到按钮,将keyup事件绑定到输入,但是当我按 Enter 时,单击事件被触发。我在其他线程中读到这是新HTML5规范或类似内容的一部分。

然后我想到将提交事件绑定到表单并在那里检测该事件的起源,但到目前为止我没有运气。这可能吗?

编辑

我想我设法修复了它。我按照 fortegente 的建议将keyup事件更改为按键,并阻止defaultEvents触发,同时触发表单上的提交事件。这似乎起到了作用。

您可以尝试添加自定义属性。像这样:

$('form').submit(function(){
   alert($(this).attr('event'));
});
$("button").on('click', function() {
   $("form").prop("event", "click").submit();
});      
$("input").on('keypress', function() {
   if (e.which == 13) {
     $("form").prop("event", "keypress").submit();
   }
});