如何使元素在按下按钮时不会失去焦点
How to make element not lose focus when button is pressed?
我有一个文本区域,在其中插入插入符号位置的内容(感谢Tim Down的回答)。它在用户按下按钮时插入内容。但似乎当按下按钮时,文本区域的焦点就消失了。如果插入符号的位置相同,我如何将焦点保持在那里?我一直在考虑将evt.preventDefault()
与.focusout()
结合使用。如果有帮助的话。
处理mousedown-事件,而不是单击事件。mousedown事件将在另一个元素的焦点丢失之前进行处理。
在mousedown事件处理程序中,需要防止事件默认行为。
e.preventDefault(); // in your mousedown eventhandler
JS Fiddle演示
您无法阻止焦点移动到可聚焦元素,并且仍然允许鼠标单击具有其正常行为(例如click
按钮)。如果您单击支持焦点的元素(如按钮),它将获得键盘焦点。
如果操作得当,可以通过编程将焦点重新放回元素上。如果做得不好,可能会破坏页面的可用性。
演示:JSFiddle
按下按钮时必须重新对焦。
HTML代码:
<input id="messageBox" autofocus />
<input type="button" id="messageSend" onclick="setFocusToMessageBox()" value="Send" />
Javascript代码:
<script>
function setFocusToMessageBox(){
document.getElementById("messageBox").focus();
}
</script>
当按钮单击功能结束时,通过以编程方式将焦点应用回文本区域,可以轻松地做到这一点。通过这种方式,您可以在每次单击事件时重新获得焦点。
尝试使用tabindex="-1〃;按一下按钮,也许可以。
<input type="text" name="body" id="body" Placeholder="message..">
<input type="submit" value="send" id="sendButton" tabindex="-1">
相关文章:
- Javascript游戏输入失去焦点
- 如何使元素在按下按钮时不会失去焦点
- 在输入上失去焦点()
- 如何在没有科尔多瓦插件的情况下隐藏软键盘,也不会失去焦点
- ExtJS5 菜单面板在面板失去焦点时消失
- Javascript弹出窗口在某些情况下失去焦点
- 按下esc键或随机单击鼠标时,Jcrop失去焦点
- 当我失去焦点时,不会触发ng模糊
- JavaScript代码在失去焦点时停止
- 文本框在滚动时在模式中失去焦点
- 任何防止在从 tinymce 容器中单击输入文本时失去焦点的方法
- 按键事件在文本输入失去焦点并再次获得焦点后自动触发
- 获取页面事件,选项卡关闭,失去焦点
- DIV 在单击其中的元素时失去焦点
- 如何在内容可编辑元素中的文本失去焦点时保持该元素处于选中状态
- 为什么欧芹不验证每个字段(例如失去焦点),而我调用$('#myForm').validate();
- 以 jQuery 为中心的文本框在 Safari 中输入一个字符后失去焦点
- jQuery 图像推子不会在窗口失去焦点时停止
- ASP.NET 文本框不会失去焦点
- 在调用窗口模糊(浏览器失去焦点)时避免元素模糊处理程序