Javascript验证不允许使用句点/小数点

时间:2015-10-30 17:14:07

标签: javascript validation

我在输入框中添加停止验证时遇到了一些问题。仅允许数字(第二条件)的限制有效,但第一个条件也可能不存在。完整停止和小数点仍未出现在输入框中。

function isNumberKey(evt) {
   var charCode = (evt.which) ? evt.which : event.keyCode
   if (charCode == 110 || charCode == 190)
      return true;
   else if (charCode > 31 && (charCode < 48 || charCode > 57))
      return false;

   return true;
}

此外,我注意到这个JS的行为在不同的浏览器中是不同的。在FireFox中,我可以使用数字键盘输入值。但是,在Chrome中,我仅限于排名第一的数字。浏览器都不允许小数点。

1 个答案:

答案 0 :(得分:1)

onkeypress不会报告密钥代码,它会报告输入的ASCII字符。你想要onkeydown

&#13;
&#13;
function isNumberKey(evt) {
   var charCode = (evt.which) ? evt.which : event.keyCode
   
   if (charCode == 110 || charCode == 190)
      return true;
   else if (charCode > 31 && (charCode < 48 || charCode > 57))
      return false;

   return true;
}

document.getElementById('foo').onkeydown = isNumberKey;
&#13;
<input type="text" id="foo" />
&#13;
&#13;
&#13;