javascript - 如何设置输入按键的默认输入?
问题描述
我有一个用 React 编写的网页(但它不应该与那个问题严格相关),它由几个输入组成,我们称它们为 Name、Surname 和 Code。
为了快速工作,代码的插入是通过用作外部键盘的条码扫描仪完成的。我的想法是,如果某个字段被聚焦,则按键被插入到聚焦输入中,但是,如果没有输入聚焦,我想自动聚焦并填充代码输入。
有没有办法轻松做到这一点?
解决方案
let inputName = document.querySelector('input[name="name"]');
let inputSurname = document.querySelector('input[name="surname"]');
let inputCode = document.querySelector('input[name="code"]');
let focusedInput = null;
[inputName, inputSurname, inputCode].forEach((input) => {
input.addEventListener('blur', () => {
focusedInput = null;
});
input.addEventListener('focus', () => {
focusedInput = input;
});
});
document.body.addEventListener('keypress', () => {
if (focusedInput == null) {
inputCode.focus();
}
});
<div>
<label>Name</label>
<input type="text" name="name" />
</div>
<div>
<label>Surname</label>
<input type="text" name="surname" />
</div>
<div>
<label>Code</label>
<input type="text" name="code" />
</div>
推荐阅读
- java - JFileChooser 的 FileFilter 有编译错误
- python - 为什么在刷新数据库更改后 SQLAlchemy 将字符串更改为整数?
- java - java中的碰撞检测问题。intersectsWith 方法总是返回 true
- reactjs - Gatsby-remark-images 偶尔会链接图像
- c++ - 如何将 boost 设置为不同的版本?
- animation - 如何达到缩小画面的效果?
- python - 为什么 Visual Studio Code 将“return super().__init__(self)”插入派生类?
- node.js - 如何在 node.js 中发出 HTTPS POST 请求?
- firebase - 如何将图像上传到firebase存储中的文件夹
- java - 如何仅在拇指移动时设置 SeekBar 值?