保持对输入标签的关注

时间:2013-03-27 21:56:14

标签: html javascript-events input

我正在尝试使用此代码继续关注输入元素:

<input onblur="this.focus()" />

但它似乎不起作用。

1 个答案:

答案 0 :(得分:9)

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

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

这是working example。注意 - 输入后不能保留文本字段=)

编辑我使用了jQuery,但没有它就可以轻松完成 EDIT2 这是纯JS版本fiddle

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

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