2

如果这是重复的,我很抱歉,但我找不到我的问题的答案。如果您知道在哪里已经回答,请给我一个链接。

我正在使用 jquery 将函数绑定到文本框的 onblur 事件。tblUserDetails目标是仅当焦点离开表格中的文本框时才触发回发。当文本框失去焦点时:

  • 在 IE 中,新的焦点元素是新选择的文本框。
  • 在 Chrome 中,文档集中在两个文本框之间,因此$(document.activeElement)永远不会指向新选择的文本框。

这是我的代码,它适用于 IE,但不适用于 Chrome:

SaveNetworkDetails: function () {

    // Trigger the blur event when one of the textboxes loses focus
    $("[id$=tblUserDetails]").find('input[id*="txt"]').blur(function (e) {

        // Check if the new focused element is among the textboxes
        if ($(document.activeElement).parents("[id$=tblUserDetails]").length == 0) {
            // Trigger postback
        }
    });
}

如何在绑定到 blur 事件的函数中找到 Chrome 中新选择的文本框?

问候,

吉尔斯

4

1 回答 1

1

这里有一个小误解:.blur()不会触发 blur 事件,它会将函数绑定到 blur 事件,这意味着您设置了一个在发生模糊时触发的函数。

也许这种误解是您问题的根本原因。

更新

我已经重新阅读了这个问题,现在我看到了你想要实现的目标。尽管您的文本让人认为您正在以编程方式触发模糊,但您的问题是,在 chrome 中,当离开控件时,文档会获得临时焦点。

与其在第一个输入的模糊处触发回发,不如在下一个输入的焦点上触发回发。根据我在您的代码中看到的,这种更改并不重要,但会解决您的问题。

于 2012-10-16T14:30:48.233 回答