有人能告诉我我在这里做错了什么吗..当我输入 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/