[英]How do I keep an input focused even when I click a button outside it
Let's say I have an input假设我有一个输入
<input type="text" id="inPut" autofocus>
and a button和一个按钮
<button id="btn">Some text</button>
I want that onblur, it loses focus (as it normally would), but when I click this button, nothing happens to the focus ie it does not lose focus我想要那个onblur,它失去焦点(就像通常那样),但是当我点击这个按钮时,焦点没有任何反应,即它不会失去焦点
const btn = document.querySelector("#btn"); const inp = document.querySelector("#inp"); btn.addEventListener("click", () => { inp.focus(); });
<input id="inp" type="text"> <button id="btn">Click</button>
You can store input's focus
information in a variable, toggle that variable on button's mouseover
event (this would work because mouseover
fires before click
and mouseover
doesn't make the button active)您可以将输入的focus
信息存储在变量中,在按钮的mouseover
事件上切换该变量(这会起作用,因为mouseover
在click
之前触发并且mouseover
不会使按钮处于活动状态)
const btn = document.querySelector("#btn"); const inp = document.querySelector("#inp"); let isInputFocused = false; btn.addEventListener("mouseover", () => { if (inp === document.activeElement) { isInputFocused = true; } else { isInputFocused = false; } }); btn.addEventListener("click", () => { if (isInputFocused) { inp.focus() } });
<input id="inp" type="text"> <button id="btn">Click</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.