1

使用 jquery,我正在使用 blur 事件检测文本框失去焦点。

然后我隐藏文本框并将其替换为包含输入文本的标签。

我的问题是,即使浏览器失去焦点,也会触发此事件(在 linux/firefox 下,即使按下“Alt Gr”键在文本框中插入特殊字符(如 arobase @)也会发生这种情况)

是否可以检测到焦点仅丢失到页面上的另一个元素?

编辑:添加示例 jsfiddle http://jsfiddle.net/XMp5n/

相关代码:

$('#emailField').blur(function() {
    $('#emailField').hide();
    $('#emailFieldLabel').show();
});
4

1 回答 1

1

您的 JSFiddle 的功能似乎完全可以正常工作。您提到linux/firefox使用 Alt 键会导致项目失去焦点,要纠正此问题,您可能需要添加一个全局变量并在“document.onkeydown”函数中更改它:

        var isAlt = false;

        document.onkeydown = function(event) {
            if (event.keyCode == 18) {
                isAlt = true;
            } else {
                isAlt = false;
            }
        }

        $('#emailField').blur(function() {
            if (isAlt) {
                $('#emailField').hide();
                $('#emailFieldLabel').show();
            }
        });

在此处查看其他 Javascript 键码。

于 2013-09-27T11:15:20.177 回答