验证年龄字段

时间:2010-06-12 18:00:36

标签: javascript html

我正在尝试验证表单中的年龄字段,但我遇到了一些问题。首先,我试图确保该字段不会被发送为空。我不知道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。任何人都可以帮助我吗?

对于任何英文错误感到抱歉,并提前感谢您的帮助。

1 个答案:

答案 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 questionvladv