首页 > 解决方案 > ReactJS 自动模拟键盘

问题描述

请有人帮帮我,在这里的代码和框链接中,可以看到 2 输入类型的文本,我想在第二个输入中,当您聚焦并按下“退格”键时,光标将自动聚焦在第一个输入上,谢谢帮帮我,希望你有一个美好的一天

标签: reactjsinputkeyboardfrontendsimulate

解决方案


您需要做的是收听onKeyDown事件。当事件触发时,它会传递KeyboardEvent可用于检查按下的键和其他相关信息的参数。在这种情况下,您将需要查找KeyboardEvent.keyCode. 键入时记录键码将显示您刚刚按下的键的键码。

<input
  type="text"
  onKeyDown={(e) => {
    console.log('pressing', e.keyCode)
    }
  }}
/>

之后,您需要获取 的引用input才能有条件地聚焦输入。

export default function Demo() {
  const onKeyDown = (e) => {
    const BACKSPACE_KEY = 8;
    const ENTER_KEY = 13;
    const form = e.target.form;
    const index = Array.prototype.indexOf.call(form, e.target);

    let el;
    if (e.keyCode === ENTER_KEY) {
      el = form.elements[index + 1];
    } else if (e.keyCode === BACKSPACE_KEY) {
      el = form.elements[index - 1];
    }
    if (el) el.focus();

    e.preventDefault();
  };

  return (
    <form>
      <input type="text" onKeyDown={onKeyDown} />
      <input type="text" onKeyDown={onKeyDown} />
      <input type="text" onKeyDown={onKeyDown} />
      <input type="text" onKeyDown={onKeyDown} />
      <input type="text" onKeyDown={onKeyDown} />
    </form>
  );
}

现场示例

编辑反应自动模拟键盘(分叉)


推荐阅读