保持专注于一个输入标签(Maintain focus on an input tag)

2019-08-18 02:09发布

我试图保持专注与此代码的输入元素:

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

但它似乎并没有工作。

Answer 1:

如果我们只需要调用.focus()对上blur事件,它会恢复的重点,但实际上不会有文本光标。 为了解决这个问题,我们必须让元素失去焦点,然后在几毫秒内返回。 我们可以使用setTimeout()这一点。

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

这里的工作示例 。 要小心 - 你不能离开文本字段中输入后,=)

编辑我使用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>


文章来源: Maintain focus on an input tag