应该确保前两个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);
}
答案 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);
}