保持对输入标签的关注

in3*_*n3D 5 html input javascript-events

我试图用这段代码继续关注输入元素:

<input onblur="this.focus()" />
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

Den*_* O. 10

如果我们只是.focus()blur事件上调用,它将恢复焦点,但实际上没有文本光标.要处理这个问题,我们必须让元素失去焦点,然后在几毫秒内返回它.我们可以用setTimeout()它.

$('#inp').on('blur',function () { 
    var blurEl = $(this); 
    setTimeout(function() {
        blurEl.focus()
    }, 10);
});
Run Code Online (Sandbox Code Playgroud)

这是工作示例.小心 - 输入后不能保留文本字段=)

编辑我使用了jQuery,但没有它就可以轻松完成.
EDIT2这是纯粹的JS版本小提琴

<input type="text" id="elemID" />

<script type="text/javascript">
    document.getElementById('elemID').onblur = function (event) { 
        var blurEl = this; 
        setTimeout(function() {
            blurEl.focus()
        }, 10);
    };
</script>
Run Code Online (Sandbox Code Playgroud)

  • 最后一件事:它可以这样工作吗?`&lt;input onblur="setTimeout(this.focus(),10" /&gt;` (2认同)