数字的javascript验证

标签 javascript validation

有人能告诉我我在这里做错了什么吗..当我输入 1 1 0r a 时我没有收到无效号码警报

function validateNumeric() {
  var old_val = document.getElementById("tbNumber").value;
  var new_val = old_val.replace(/^\s+|\s+$/g,"");
  var validChars = '0123456789.'; 

  for(var i = 0; i < val.length; i++){ 
    if(validChars.indexOf(new_val.charAt(i)) == -1){
      alert('Please enter valid number');
      return false; 
    } else {
        document.getElementById("tbNumber").value = new_val;
      }
  }
  return true; 
}

最佳答案

在您的 for 循环测试中,您引用了一个变量 val,它返回时的长度可能为 0,因此你的循环永远不会做任何事情,函数只会返回 true。我猜你的 for 循环实际上应该是这样的:

for(var i = 0; i < new_val.length; i++){
    ...
}

关于数字的javascript验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231519/

相关文章:

html - 过滤器 :Alpha(opacity=50) doesn't pass CSS validation

ASP.NET 传递错误消息

asp.net - 如何让 ASP.Net 页面的客户端验证运行?

JavaScript 提交错误的表单

javascript - 对象分配扩展对象的不可变数组

javascript - 如何在firebase中获取Keys?

java - 以编程方式设置文本时 InputVerifier 未激活

validation - 使用 JBoss Errai 进行 Bean 验证

javascript - $().hide 仅适用于第一次

javascript - 我需要找到基于prototype.js的滑出选项卡?