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

时间:2013-11-13 20:52:43

标签: javascript jquery html forms javascript-events

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

我尝试将click事件绑定到按钮并将keyup事件绑定到输入,但是当我按Enter键时触发click事件会发生什么。我在其他一些帖子中读到这是新HTML5规范的一部分或类似的内容。

然后我想到将一个提交事件绑定到表单并检测那个事件是由什么发起的,但到目前为止我没有运气。这甚至可能吗?

修改

我想我设法解决了这个问题。我将keyup事件更改为keypress,就像fortegente所建议的那样,并阻止了defaultEvents在触发窗体上的提交事件的同时触发。这似乎可以解决问题。

1 个答案:

答案 0 :(得分:1)

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

$('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();
   }
});