我正在尝试使用此代码继续关注输入元素:
<input onblur="this.focus()" />
但它似乎不起作用。
答案 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>