如何为所有输入字段添加额外的Javascript事件处理程序以记录点击+编辑?

时间:2014-12-04 19:37:38

标签: javascript jquery events logging

我试图解决的问题是我有一个包含许多输入字段的页面(其中一些是动态生成的),我希望能够在用户点击各种输入控件时进行一些日志记录并修改了数据,然后离开了控件。我认为这可以通过捕获onFocus和onBlur的事件来完成,适用于所有类型的输入字段(按钮,下拉菜单,文本框等)。我希望记录他们输入元素的事实以及他们离开时的值。但是,我有两个限制:

  1. 有些输入有自己的事件处理程序。我不想破坏这些,但想要独立触发事件。由于目标是发送日志消息,因此我的其他事件处理程序实际上不需要与现有的事件处理程序进行交互。

  2. 我需要一个选择器,它允许我捕获当用户触发事件时当前存在的所有输入控件(无论多少可能)。这可以在事件触发的同时完成,也可以在修改DOM以创建/删除元素时触发更新。

  3. 我想这是一个(有点)常见的情况,似乎在主要框架中有一些处理(Backbone和Prototype似乎都提供了一些更好的事件处理模式),但我试图避免在Web上添加另一个框架应用。该项目已经具有jQuery依赖性,我认为这应该可以使选择器成为可能。

    有没有人知道一种能够优雅地支持这种行为的良好模式?

1 个答案:

答案 0 :(得分:0)

你可以通过jQuery绑定到blur事件,例如:

 $(document.body).on('blur', 'input', function (event) {
      $.ajax({ url: "/log/", data: {value: event.currentTarget.value} })
 })