我正在尝试让这个 Javascript 在我的应用程序中正常工作。
function validateQuantity(field)
{
var value = field.value; //get characters
//check that all characters are digits, ., -, or ""
for(var i=0; i < field.value.length; ++i)
{
var new_key = value.charAt(i); //cycle through characters
if(((new_key <= "0") || (new_key > "9")) &&
!(new_key == ""))
{
alert("Please enter number and greater than 0 only");
return false;
break;
}
return true;
}
}
我有一个输入按钮,如下所示
<input class="buttonToLink" type="submit" value="Update"
onclick="return validateQuantity(document.getElementById('quantity'))"/>
以上代码成功检查所有字母(例如“abc”)或字母和数字(例如“abcd123”)的输入为 false。
但是,当我将数字字符与“123abc”等字母放在一起时,它会失败 - 它不会显示警报。
我的代码做错了什么,如何修复?
最佳答案
function validateQuantity(field) {
if (!/^\d+$/.test(field.value)) { // is an integer
alert("Please enter number and greater than 0 only");
return false;
}
return true;
}
您的代码不起作用的原因是循环内有 return true 语句。一旦它看到一个有效的整数,它就会返回 true 并退出函数,忽略后面的任何内容。例如,允许“123abc”等字符串。
这可能就是您想要的:
function validateQuantity(field)
{
var value = field.value; //get characters
//check that all characters are digits, ., -, or ""
for(var i=0; i < field.value.length; ++i)
{
var new_key = value.charAt(i); //cycle through characters
if(((new_key <= "0") || (new_key > "9")) &&
!(new_key == ""))
{
alert("Please enter number and greater than 0 only");
return false;
break;
}
}
return true;
}
关于javascript - 检查按钮单击时的整数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852273/