我正在尝试使用以下代码将注意力集中在输入元素上:
<input onblur="this.focus()" />
但这似乎不起作用。
我正在尝试使用以下代码将注意力集中在输入元素上:
<input onblur="this.focus()" />
但这似乎不起作用。
如果我们只是.focus()
在事件上调用right 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>