jquery - focus() 不会将光标带入字段

标签 jquery focusout

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

$('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()

最佳答案

发生这种情况是因为模糊尚未完成。用一个小的超时来完成它就会起作用:

$('input:first-child').blur(function(e){
    setTimeout(function () { $('input:first-child').focus(); }, 20);
});

关于jquery - focus() 不会将光标带入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346669/

相关文章:

javascript - jQuery - 更改内部 <span name ="bar"> 元素的文本

javascript - 为什么我的 jQuery focusout(或模糊)事件没有被触发?

JavaScript FocusOut - 获取获得焦点的元素

jQuery 验证插件在 IE 中清除文件输入值

jquery - 追加和 jquery

javascript - 如何智能地将文本 block 分成段落?

javascript - 在页面加载jquery时从具有相同类名的多个div获取特定属性值

javascript - 焦点文本字段检查它是否是数字

javascript - 如何在 JQuery 中触发选择的事件(按键或模糊)