📜  仅在文本框中键入数值 javascript (1)

📅  最后修改于: 2023-12-03 14:49:15.640000             🧑  作者: Mango

仅在文本框中键入数值 JavaScript

在JavaScript中,我们有一种输入元素叫做文本框。文本框用于接受用户的输入,可以用来输入任何类型的文本。然而,有时候我们想限制用户只能输入数值。这篇文章将介绍如何在文本框中仅允许输入数值。

HTML

首先,我们需要一个文本框元素。我们可以在HTML中使用input元素来创建一个文本框。然后,我们需要设置type属性为number,这样它就只能接受数值作为输入了:

<input type="number">

然而,这并不能完全限制用户只能输入数值。用户仍然可以在文本框中输入其他字符,如字母和符号。为了完全限制用户只能输入数值,我们需要使用JavaScript来检查用户的输入。

JavaScript

我们可以在文本框上使用oninput事件监听器来检查用户的输入。每当用户在文本框中输入内容时,该事件就会被触发。我们可以在事件处理程序中检查文本框的值,如果发现不是数值,就将其替换为空字符串。

<input type="number" oninput="checkInput(event)">
function checkInput(event) {
  const target = event.target;
  const value = target.value.trim(); // 删除前导和尾随的空格

  // 检查是否为数值
  if (isNaN(value)) {
    target.value = '';
  }
}

上述代码中,我们使用isNaN()函数检查文本框的值是否为数值。如果不是数值,我们就将其替换为空字符串,这样就只剩下数值了。

完整代码

下面是完整的HTML和JavaScript代码:

<!DOCTYPE html>
<html>
<head>
  <title>仅在文本框中键入数值</title>
</head>
<body>
  <input type="number" oninput="checkInput(event)">
  
  <script>
    function checkInput(event) {
      const target = event.target;
      const value = target.value.trim(); // 删除前导和尾随的空格

      // 检查是否为数值
      if (isNaN(value)) {
        target.value = '';
      }
    }
  </script>
</body>
</html>

现在,我们就实现了仅在文本框中键入数值的功能。用户将无法输入任何其他字符了。