我正在尝试验证表单中的年龄字段,但我遇到了一些问题。首先,我试图确保该字段不会被发送为空。我不知道JavaScript,所以我搜索了一些脚本并将其改编为:
function isInteger (s)
{
var i;
if (isEmpty(s))
if (isInteger.arguments.length == 1)
return 0;
else
return (isInteger.arguments[1] == true);
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (!isDigit(c))
return false;
}
return true;
}
function isEmpty(s)
{
return ((s == null) || (s.length == 0))
}
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{
alert(alerttxt);return false;
}
else
{
return true;
}
}
}
function validate_form(thisform)
{
with (thisform)
{
if ((validate_required(age,"Age must be filled out!")==false) ||
isInteger(age,"Age must be an int number")==false))
{email.focus();return false;}
}
}
//html part
<form action="doador.php" onsubmit="return validate_form(this)" method="post">
它适用于空字段,但如果我在年龄字段中键入任何字母或字符,它将被发送并在我的数据库中保存为0。任何人都可以帮助我吗?
对于任何英文错误感到抱歉,并提前感谢您的帮助。
答案 0 :(得分:2)
您可以使用isNaN()
来确定某个对象是否为数字,例如:
someString="6";
someNumber=5;
someFloat=3.14;
someOtherString="The";
someObject = new Array();
isNaN(someString); // Returns false
isNaN(someNumber); // Returns false
isNaN(someFloat); // Returns false
isNaN(someOtherString); // Returns true
isNaN(someObject); // Returns true
然后,您可以使用parseFloat()
或parseInt()
将字符串转换为数字:
aString = "4";
aNumber = parseInt(aString);
if(aNumber<5)
alert("You're too young to use this website");
另请参阅评论中指出this other question的vladv。