05-17-2004, 10:47 AM | #1 (permalink) |
Insane
Location: Chicago
|
Javascript
Hey everyone, Im having problems with my web page that I used javascript for. Its really basic but what its supposed to do is ask for the month and day you were born then look up the month using switch conditionals and then determine by day what sign you are. I then have have a document.write("asdfasdf") command that should write what your zodiac sign is. If anyone can go to the link and check the source code then give any insight why this is not working, Id really appreciate it. Thanks in advance.
Here is the link for the site!
__________________
Jesus was a ruffies victim! Dan 3:20 |
05-18-2004, 01:09 AM | #2 (permalink) |
Rookie
Location: Oxford, UK
|
Works fine if you put quotes around the vars in the switch:
Code:
<script language = "javascript"> var mon = prompt("Please enter the month you were born(in digit form)", "") var day = prompt("Please enter the day you were born(in digit form)", "") switch (mon) { case "1": if(day >=21) { document.write("Your zodiac symbol is Aquarius") } else { document.write("Your symbol is Capricorn") } break case "2": if(day <= 19) { document.write("Your zodiac symbol is Aquarius") } else { document.write("Your zodiac symbol is Pisces") } break case "3": if(day <= 20) { document.write("Your zodiac symbol is Pisces") } else { document.write("Your zodiac symbol is Aries") } break case "4": if(day <= 20) { document.write("Your zodiac symbol is Aries") } else { document.write("Your zodiac symbol is Taurus") } break case "5": if(day <= 21) { document.write("Your zodiac symbol is Taurus") } else { document.write("Your zodiac symbol is Gemini") } break case "6": if(day <= 22) { document.write("Your zodiac symbol is Gemini") } else { document.write("Your zodiac symbol is Cancer") } break case "7": if(day <= 23) { document.write("Your zodiac symbol is Cancer") } else { document.write("Your zodiac symbol is Leo") } break case "8": if(day <= 22) { document.write("Your zodiac symbol is Leo") } else { document.write("Your zodiac symbol is Virgo") } break case "9": if(day <= 22) { document.write("Your zodiac symbol is Virgo") } else { document.write("Your zodiac symbol is Libra") } break case "10": if(day <= 22) { document.write("Your zodiac symbol is Libra") } else { document.write("Your zodiac symbol is Scorpio") } break case "11": if(day <= 21) { document.write("Your zodiac symbol is Scorpio") } else { document.write("Your zodiac symbol is Sagittarius") } break case "12": if(day <= 21) { document.write("Your zodiac symbol is Sagittarius") } else { document.write("Your zodiac symbol is Capricorn") } } </script> Code:
<style> h2{color:red} body{background-color:black; color:white} </style> Essentially the problem is that Javascript doesn't know whether your variables are numbers or strings until you tell it so (by doing something that makes it obvious). So this way we leave 'mon' as a string - and need quotes for comparison, and have 'day' as a number - which Javascript understands from the attempts to use "<=" with an number. Incidentally, it's good practice in Javascript (ie some browsers may complain or act oddly if you don't) to put semicolons at the end of each statement. Not compulsory, but it always helps to cater to as many as possible. Hope that helps! (sorry about the double-spacing, it's a board thing)
__________________
I can't understand why people are frightened of new ideas. I'm frightened of the old ones. -- John Cage (1912 - 1992) Last edited by cliche; 05-18-2004 at 01:23 AM.. |
Tags |
javascript |
|
|