在Chrome中集中精力模糊

时间:2012-10-16 14:28:12

标签: jquery google-chrome

如果这是重复,我很抱歉,但我无法找到问题的答案。如果你知道它已被回答的地方,请给我发一个链接。

我正在使用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
        }
    });
}

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

此致

吉勒

1 个答案:

答案 0 :(得分:1)

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

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

<强>更新

我重新阅读了这个问题,现在我看到了你想要实现的目标。虽然你的文字让人觉得你是以编程方式触发模糊,但你的问题在于,在chrome中,文档在保留控件时会获得临时焦点。

不是在第一个输入的模糊上触发回发,而是应该在下一个输入的焦点上触发回发。通过我在您的代码中看到的内容,此更改无关紧要,但可以解决您的问题。