使用jquery我正在使用模糊事件检测文本框中丢失的焦点。
然后我隐藏文本框并将其替换为包含输入文本的标签。
我的问题是即使浏览器失去焦点也会触发此事件(即使在按下“Alt Gr”键以在文本框中插入特殊字符如arobase @时,也会在linux / firefox下发生)
是否可以检测到焦点仅丢失到页面上的另一个元素?
编辑:添加示例jsfiddle http://jsfiddle.net/XMp5n/
相关代码:
$('#emailField').blur(function() {
$('#emailField').hide();
$('#emailFieldLabel').show();
});
答案 0 :(得分: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();
}
});
检查here是否有其他Javascript密钥代码。