0

嘿伙计们,我只是在学习 javascript,不过我有一些 html 和 css 背景。

我不知道如何只允许在提示中输入数字值,或者检查它是否是数字而不是如果不是则重新提示。文本框也是如此。

4

2 回答 2

2

这是我在一些代码中使用的一个很好的数字测试功能(来自Validate decimal numbers in JavaScript - IsNumeric())。如果是数字则返回 true,否则返回 false。这是浮点验证,而不是整数

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
于 2012-09-21T23:10:28.210 回答
0

你已经有了一个很好的答案。这个答案是对您可以做的事情的另一种看法。

假设您的号码字段如下所示

<input type="text" name="num_fld" id="num_fld" onchange="return chkNum();" />

你已经定义了一个像这样的javascript函数

function chkNum()
{
   var rc = false;

   if(!isNaN(parseFloat(n)) && isFinite(n))
   {
     rc = true;
   }
   else
   {
      document.getElementById("num_fld").value = 0;
   }
   return rc;
}

这个函数检查数字是否真的是一个数字,但也会对输入进行猴子,所以错误的值不会留在原地。顺便说一句,我不太确定返回 false 是否会阻止输入数字(有点像在验证函数中。)我相信从我的测试中返回 false 确实会影响该字段中的内容,但我不是 100% 确定这一点.

您还可以在失败时更改输入字段的背景和/或文本颜色(测试的 else 部分,因此用户会注意到有问题。alert();这对测试很有用,但有点搞砸了您网站在生产中的外观.

于 2012-09-21T23:58:49.880 回答