6

当值错误时,我试图强制光标返回到其先前的输入。这是我使用的脚本的更简单版本:

$('input:first-child').blur(function(e){
    console.log('here');
  $('input:first-child').focus();
});

当我单击另一个元素进行聚焦时它可以工作,但当我单击 body 或另一个 div 元素时它不起作用。为什么?​我有一个 jsfiddle 案例:http: //jsfiddle.net/leyou/Zabn4/37/

编辑:我在 Chrome/Win7 上进行测试,但使用 Firefox 似乎更糟。它完全忽略了 focus()

4

2 回答 2

6

发生这种情况是因为模糊尚未完成。做一个小的超时,它会工作:

$('input:first-child').blur(function(e){
    setTimeout(function () { $('input:first-child').focus(); }, 20);
});
于 2012-11-12T15:46:23.907 回答
0

尝试这个

$('input:first-child').blur(function(e){
    console.log('here');
    setTimeout(function() { $('input:first-child').focus(); }, 500);
});
于 2012-11-12T15:47:35.940 回答