年龄验证,确保不是空白且不低于18

时间:2014-03-18 19:58:50

标签: javascript

应该确保前两个elem [0]和elem [1]不是空白,如果它们要返回并错误或显示名称 第二部分是年龄,elem [2]小于18

时给出错误
function checkForm()
{


var elem = document.getElementById('myForm').elements;

if(elem[0].value or elem[1].value ==(""))
{   
    alert("Please enter your first and last name");
}
alert("Your name is " + elem[0].value + "" + elem[1].value);

if number(elem[2].value) < 18
{
    alert("You are to young to be playing on this computer.");
}
alert("Your age is "+ elem[2].value);


}

2 个答案:

答案 0 :(得分:1)

您的第一个条件

if(elem[0].value or elem[1].value ==(""))

这一行中的错误源于英语中的俗语:当你说“猫或狗在这里”时,这是正确英语的捷径,即“猫在这里,或者狗在这里”

编程语言通常没有口语;您的代码评估elem[0].value,然后对其执行布尔“或”操作,并将表达式elem[1].value == ("")作为另一个比较器。

也就是说,您的行等同于:

if ((elem[0].value) or (elem[1].value == ""))

我认为很明显这是无意识的。

你可能想写:

if (elem[0].value == "" || elem[1].value == "")

请注意,我还将不存在的or替换为||,意思是“或”。

您的第二个条件

在这一行:

if number(elem[2].value) < 18

您忘记了周围的()

所以:

if (number(elem[2].value) < 18)

虽然目前尚不清楚number的含义。进一步研究指示你写这篇文章的文本。

其他说明

你的缩进通常很乱。

我希望您喜欢学习JavaScript。继续阅读你的书并研究语法,因为你通常必须正确地理解它:细节很重要

答案 1 :(得分:0)

尝试:

 if (!isNaN(number(elem[2].value)) // its a number?
 {
      if (number(elem[2].value) < 18) // add ()
      {
          alert("You are to young to be playing on this computer.");
      }
      alert("Your age is "+ elem[2].value);

  }