使用同一键盘输入两个输入

typing in two inputs using same keypad

提问人:apex anchor 提问时间:2/13/2022 更新时间:2/13/2022 访问量:30

问:

我有一个 HTML 和 javasscript 键盘,可以使用键盘将数字输入到输入中,我试图添加更多输入,这个键盘只需一个输入即可正常工作

当我专注于它时,我如何使我的代码 javascript 也适用于第二个输入,键盘应该能够使用相同的键盘输入第二个输入?

        function resetNumber()
      {
          document.getElementById("field").value = '';
      }
      
      function setNumber(number) {
        document.getElementById("field").value = document.getElementById("field").value === number ?  '' : document.getElementById("field").value += number;
      }
<html>
<head>
    <script src="/scripts/snippet-javascript-console.min.js?v=1"></script>
</head>
<body>
    <html>
<body>
    <button onclick="resetNumber()">Reset</button>
   <button onclick="setNumber(0)">0</button>
    <button onclick="setNumber(1)">1</button>
    <button onclick="setNumber(2)">2</button>
    <button onclick="setNumber(3)">3</button>
    <button onclick="setNumber(4)">4</button>
    <button onclick="setNumber(5)">5</button>
    <button onclick="setNumber(6)">6</button>
    <button onclick="setNumber(7)">7</button>
    <button onclick="setNumber(8)">8</button>
    <button onclick="setNumber(9)">9</button>
    <br />
        <input type="text" id="field" />
        <input type="text" id="second" />
</body>
</html>

JavaScript HTML

评论


答:

0赞 e-e 2/13/2022 #1

我建议在其中一个变量集中时将活动输入存储在变量中:

let activeInput;

document.querySelector("#field").addEventListener("focus", (event) => {
  activeInput = event.target;
});

document.querySelector("#second").addEventListener("focus", (event) => {
  activeInput = event.target;
});

function resetNumber() {
  if (!activeInput) {
    console.log("select an input!");
    return;
  }
  activeInput.value = "";
}
function setNumber(number) {
  if (!activeInput) {
    console.log("select an input!");
    return;
  }
  activeInput.value = activeInput.value === number ? "" : (activeInput.value += number);
}

评论

0赞 apex anchor 2/13/2022
谢谢,这解决了我的问题,如果你不介意的话,另一个问题:)如果 maxlength=“7” 的第一个输入如何在自动输入 7 个数字后自动对焦到第二个输入?
0赞 e-e 2/13/2022
在此处进行了更新:codepen.io/e-e/pen/WNXENWe?editors=1111
0赞 apex anchor 2/13/2022
完善!!谢谢,我很感激
0赞 apex anchor 2/13/2022
代码缺少一件事,对不起,我没有注意到它,它在达到最大长度后集中,这工作正常,但是填充第一个输入的问题我需要在输入内单击以使用键盘进行输入,请问我如何在第一个输入中输入而不单击输入内