如何始终保持html输入的焦点?
在创建元素时使用autofocus
属性有助于集中在页面加载,但它不会将焦点放在对象上。有没有简单的方法来保持焦点呢?
答案 0 :(得分:21)
试试这个:
<!-- On blur event (unfocus) refocus the input -->
<input onblur="this.focus()" autofocus />
<input value="Can't focus on this" />
&#13;
基本上,你添加一个blur
事件(只要输入失去焦点就会发生),而在模糊事件中,你会专注于输入。此外,您还可以添加autofocus
属性以开始关注。
P.S。如果您打算将这个用于网站供实际人员使用,从用户界面的角度来看,这可能不是一个好主意。
答案 1 :(得分:1)
对于 FIREFOX ,请尝试使用 setTimeOut :
我的JS:
myFocusFunction(){
let myInput = document.getElementById('idOfInput');
setTimeout(function() {
myInput .focus();
}, 100);
}
我的HTML:
<input type="text" ng-blur="myFocusFunction()" auto-focus >
答案 2 :(得分:1)
用于反应等:
<input type={'text'} autoFocus={true} onBlur={({ target }) => target.focus()}/>
答案 3 :(得分:0)
对我有用的是在HTML输入上使用autofocus
属性,将其集中在初始页面加载上,然后禁用所有mousedown事件:
document.onmousedown = (e) => {
e.preventDefault();
}
很明显,如果您需要支持鼠标事件,则希望使用一种不太激进的方法,但这适合我的命令行模拟器Web应用程序用例。