我有以下代码,焦点上隐藏了一个“虚拟”密码字段(包含“密码”一词),并显示一个真实的密码输入字段。它适用于所有希望IE浏览器的浏览器。
在IE中,如果我选择密码字段,它会起作用,但如果我点击密码字段,它会正确聚焦,但我无法输入。
$("#passDummy").live('focus',function () {
$(this).hide();
$("#pass").show().focus();
});
这是一个jsfiddle,可以在实践中展示它......
如果我使用.focus和.blur而不是.live它也可以,但在这种情况下我需要使用.live。
编辑:我正在使用jquery 1.5.1(缩小版),但在所有后续版本中似乎都是如此。
答案 0 :(得分:1)
可能不是你想要的答案,但无论如何它都在这里;升级到最新的jQuery。
我用你的Jsfiddle和IE8对它进行了测试。使用jQuery 1.5.2我重现了你的问题。使用jQuery 1.6.3它按预期工作。
可怕的解决方法,但似乎有效:
$("#pass").show();
setTimeout(function(){$('#pass').focus()},10);
我认为这与文本字段没有足够快地显示在IE中的关注点有关。