user3434812
user3434812

Reputation: 1

Age verification, ensure is not blank and not less than 18

it is supposed to make sure that the first 2 elem[0] and elem[1] are not blank and if they are to return and error or display the name the second part is to give an error if the age, elem[2] is less than 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);


}

Upvotes: 0

Views: 115

Answers (3)

Lightness Races in Orbit
Lightness Races in Orbit

Reputation: 385104

Your first conditional

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

This error in this line stems from a colloquialism in English: when you say "the cat or the dog is here", this is a shortcut for the proper English, which is "the cat is here, or the dog is here".

Programming languages usually don't have colloquialisms; your code evaluates elem[0].value, then performs a boolean "or" operation on it with the expression elem[1].value == ("") as the other comparator.

That is, your line is equivalent to:

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

and I think it's clear that this was unintended.

You probably meant to write:

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

Note that I've also replaced the non-existent or with ||, which means "or".

Your second conditional

In this line:

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

You forgot the surrounding ().

So:

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

Though it's not clear what you meant by number. Further study the text that instructed you to write that.

Other notes

Your indentation is generally messy.

I hope you are enjoying learning JavaScript. Keep reading your book and studying the syntax, because you generally have to get it precisely right: details matter!

Upvotes: 1

jorgeregidor
jorgeregidor

Reputation: 208

try:

 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);

  }

Upvotes: 0

Snappawapa
Snappawapa

Reputation: 2012

looks like you aren't formatting your if() statements correctly.

instead of 'or', you should use || (two pipe symbols).

Also, correct format for the statement:

if(condition){
  what to do if 'condition' is true
}

so, correct format:

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

use this formatting for your other code as well.

Upvotes: 1

Related Questions