5.-JavaScript (1)
5.-JavaScript (1)
What Is JavaScript?
JavaScript is a scripting language most often used for client-side web development.
Client-side refers to operations that are performed by the client (in our case the client is the
browser) in a client-server relationship.
Despite the name, JavaScript is essentially unrelated to the Java programming language.
JavaScript was designed to add interactivity to HTML pages
A scripting language is a lightweight programming language
A JavaScript consists of lines of executable computer code
A JavaScript is usually embedded directly into HTML pages
JavaScript is an interpreted language (means that scripts execute without preliminary
compilation)
document.write("Hello World!")
</script>
The following is the result of putting the script above into this page:
Hello World!
<script> tag
Script tag tells the browser where the scripting starts (<script type="text/javascript">) and
ends(</script>). Type attribute indicates the type of scripting language we're using. In our case
it's JavaScript, that's why type is equal to "text/javascript".
document.write
The word document.write is a standard JavaScript command for writing output to a
page.
Ending Statements With a Semicolon?
In general, semicolons are optional! However, semicolons are required if you want to
put more than one statement on a single line.
Handling browsers that do not support JavaScript
Browsers that do not support JavaScript will display the script as page content. To
prevent them from doing this, we may use the HTML comment tag:
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
By doing this, browsers that are not JavaScript-enabled will ignore everything inside the
<!-- and the -->. JavaScript-enabled browsers, for this part, know to ignore the <!-- that
marks the beginning of the HTML comment tag, while the // (a single-line JavaScript
comment) before the --> ensures that the browser doesn't try to interpret the --> as some kind
of JavaScript command or symbol.
The <noscript> tag
It's also a good practice to display a warning message to surfers who visit your
JavaScript-powered web page using a non-JavaScript-enabled browser. To display such a
message to just those surfers and not to those who have a JavaScript-capable browser, we
can use <noscript> element as following:
<noscript>This web page uses JavaScript. To get the full effect, you need to
use a web browser with JavaScript capability and set the browser to
</noscript>
<head>
<script type="text/javascript">
....
</script>
</head>
<head>
</head>
<body>
<script type="text/javascript">
....
</script>
</body>
<head>
<script type="text/javascript">
....
</script>
</head>
<body>
<script type="text/javascript">
....
</script>
</body>
<head>
<script src="xxx.js"></script>
</head>
<body>
</body>
</html>
J S - Va r i a b l e s , I f . . . E l s e , S w i t c h
Note: many of the contents of this page are taken from w3school website.
Variables
Variables are used to store data. Example:
<script type="text/javascript">
document.write(name)
document.write("<h1>"+name+"</h1>")
</script>
A variable is a "container" for information you want to store. A variable's value can
change during the script. You can refer to a variable by name to see its value or to change its
value.
Rules for variable names:
Variable names are case sensitive
They must begin with a letter or the underscore character
Declare a Variable
You can create a variable with the var statement:
var strname = some value
Or like this:
strname = "Hege"
The variable name is on the left side of the expression and the value you want to assign
to the variable is on the right. Now the variable "strname" has the value "Hege".
Lifetime of Variables
When you declare a variable within a function, the variable can only be accessed within
that function. When you exit the function, the variable is destroyed. These variables are
called local variables. You can have local variables with the same name in different
functions, because each is recognized only by the function in which it is declared.
If you declare a variable outside a function, all the functions on your page can access it.
The lifetime of these variables starts when they are declared, and ends when the page is
closed.
If...Else
The following is an example of using if statement:
<script type="text/javascript">
document.write("<strong>Good morning</strong>")
</script>
Conditional Statements
Very often when you write code, you want to perform different actions for different
decisions. You can use conditional statements in your code to do this.
In JavaScript we have the following conditional statements:
if statement - use this statement if you want to execute some code only if a specified
condition is true
if...else statement - use this statement if you want to execute some code if the condition is
true and another code if the condition is false
if...else if....else statement - use this statement if you want to select one of many blocks of
code to be executed
switch statement - use this statement if you want to select one of many blocks of code to be
executed
If Statement
You should use the if statement if you want to execute some code only if a specified
condition is true.
Syntax:
if (condition)
Note that if is written in lowercase letters. Using uppercase letters (IF) will generate a
JavaScript error!
<script type="text/javascript">
var time=d.getHours()
if (time==11)
{ document.write("<em>Lunch-time!</em>") }
</script>
Note: When comparing variables you must always use two equals signs next to each
other (==)!
If...else Statement
If you want to execute some code if a condition is true and another code if the condition
is not true, use the if....else statement.
Syntax:
if (condition)
else
Example
<script type="text/javascript">
{
document.write("Good morning!")
else
document.write("Good day!")
</script>
else if (condition2)
else
Example
<script type="text/javascript">
if (time<10)
document.write("<b>Good morning</b>")
document.write("<b>Good day</b>")
else
document.write("<b>Hello World!</b>")
}
</script>
Switch
You should use the switch statement if you want to select one of many blocks of code to
be executed.
Syntax:
switch(n)
case 1:
break
case 2:
break
default:
code to be executed if n is
This is how it works: First we have a single expression n (most often a variable), that is
evaluated once. The value of the expression is then compared with the values for each case
in the structure. If there is a match, the block of code associated with that case is executed.
Use break to prevent the code from running into the next case automatically.
Example
<script type="text/javascript">
theDay=d.getDay()
switch (theDay)
case 5:
document.write("Finally Friday")
break
case 6:
document.write("Super Saturday")
break
case 0:
document.write("Sleepy Sunday")
break
default:
</script>
txt2="nice day!"
txt3=txt1+txt2
txt2="nice day!"
txt3=txt1+" "+txt2
or
txt1="What a very "
txt2="nice day!"
txt3=txt1+txt2
Example
greeting=(visitor=="PRES")?"Dear President ":"Dear "
If the variable visitor is equal to PRES, then put the string "Dear President " in the
variable named greeting. If the variable visitor is not equal to PRES, then put the string
"Dear " into the variable named greeting.
Popup Boxes
Alert Box
An alert box is often used if you want to make sure information comes through to the
user.
When an alert box pops up, the user will have to click "OK" to proceed.
Syntax:
alert("sometext")
Example:
<html>
<head>
<script type="text/javascript">
function disp_alert()
</script>
</head>
<body>
<form action="">
<div>
</div>
</form>
</body>
</html>
Confirm Box
A confirm box is often used if you want the user to verify or accept something.
When a confirm box pops up, the user will have to click either "OK" or "Cancel" to
proceed.
If the user clicks "OK", the box returns true. If the user clicks "Cancel", the box returns
false.
Syntax:
confirm("sometext")
Example:
<html>
<head>
<script type="text/javascript">
function disp_confirm()
if (r==true)
else
</script>
</head>
<body>
<form action="">
<div>
</div>
</form>
</body>
</html>
Prompt Box
A prompt box is often used if you want the user to input a value before entering a page.
When a prompt box pops up, the user will have to click either "OK" or "Cancel" to
proceed after entering an input value.
If the user clicks "OK" the box returns the input value. If the user clicks "Cancel" the
box returns null.
Syntax:
prompt("sometext","defaultvalue")
Example:
<html>
<head>
<script type="text/javascript">
function disp_prompt()
</script>
</head>
<body>
<form action="">
<div>
</div>
</form>
</body>
</html>
Functions
JavaScript Functions
To keep the browser from executing a script when the page loads, you can put your
script into a function.
A function contains code that will be executed by an event or by a call to that function.
You may call a function from anywhere within the page (or even from other pages if the
function is embedded in an external .js file).
Functions can be defined both in the <head> and in the <body> section of a document.
However, to assure that the function is read/loaded by the browser before it is called, it could
be wise to put it in the <head> section.
Example
<html>
<head>
<script type="text/javascript">
function displaymessage()
alert("Hello World!")
</script>
</head>
<body>
<form>
onclick="displaymessage()" >
</form>
</body>
</html>
If the line: alert("Hello world!!") in the example above had not been put within a
function, it would have been executed as soon as the line was loaded. Now, the script is not
executed before the user hits the button. We have added an onClick event to the button that
will execute the function displaymessage() when the button is clicked.
How to Define a Function
The syntax for creating a function is:
function functionname(var1,var2,...,varX)
{
some code
}
var1, var2, etc are variables or values passed into the function. The { and the } defines
the start and end of the function.
Note: A function with no parameters must include the parentheses () after the function
name:
function functionname()
{
some code
}
Note: Do not forget about the importance of capitals in JavaScript! The word function
must be written in lowercase letters, otherwise a JavaScript error occurs! Also note that you
must call a function with the exact same capitals as in the function name.
The return Statement
The return statement is used to specify the value that is returned from the function.
So, functions that are going to return a value must use the return statement.
Example
The function below should return the product of two numbers (a and b):
function prod(a,b)
x=a*b
return x
When you call the function above, you must pass along two parameters:
product=prod(2,3)
The returned value from the prod() function is 6, and it will be stored in the variable
called product.
JS - Loop
Note: many of the contents of this page are taken from w3school website.
JavaScript Loops
Loops in JavaScript are used to execute the same block of code a specified number of
times or while a specified condition is true.
Very often when you write code, you want the same block of code to run over and over
again in a row. Instead of adding several almost equal lines in a script we can use loops to
perform a task like this.
In JavaScript there are two different kind of loops:
for - loops through a block of code a specified number of times
while - loops through a block of code while a specified condition is true
The For Loop
The for loop is used when you know in advance how many times the script should run.
Syntax
for (var=startvalue;var<=endvalue;var=var+increment)
code to be executed
}
Example
Explanation: The example below defines a loop that starts with i=0. The loop will
continue to run as long as i is less than, or equal to 10. i will increase by 1 each time the loop
runs.
Note: The increment parameter could also be negative, and the <= could be any
comparing statement.
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
</script>
</body>
</html>
Example 2
How to use the for loop to loop through the different HTML headers.
<html>
<body>
<script type="text/javascript">
document.write("</h" + i + ">")
</script>
</body>
</html>
code to be executed
}
Note: The <= could be any comparing statement.
Example
Explanation: The example below defines a loop that starts with i=0. The loop will
continue to run as long as i is less than, or equal to 10. i will increase by 1 each time the loop
runs.
<html>
<body>
<script type="text/javascript">
var i=0
while (i<=10)
document.write("<br />")
i=i+1
}
</script>
</body>
</html>
Result
The number is 0
The number is 1
The number is 2
The number is 3
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10
code to be executed
}
while (var<=endvalue)
Example
<html>
<body>
<script type="text/javascript">
var i=0
do
document.write("<br />")
i=i+1
while (i<0)
</script>
</body>
</html>
Result
The number is 0
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
if (i==3){break}
document.write("<br />")
</script>
</body>
</html>
Result
The number is 0
The number is 1
The number is 2
Continue
The continue command will break the current loop and continue with the next value.
Example
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
if (i==3){continue}
document.write("<br />")
</script>
</body>
</html>
Result
The number is 0
The number is 1
The number is 2
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10
For ... In
The for...in statement is used to loop (iterate) through the elements of an array or
through the properties of an object.
JavaScript For...In Statement
The for...in statement is used to loop (iterate) through the elements of an array or
through the properties of an object.
The code in the body of the for ... in loop is executed once for each element/property.
Syntax
for (variable in object)
code to be executed
}
The variable argument can be a named variable, an array element, or a property of an
object.
Example
Using for...in to loop through an array:
<html>
<body>
<script type="text/javascript">
var x
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (x in mycars)
</script>
</body>
</html>
JS - Forms and Form Processing
Forms
Delivery Details
1. Name*
2. Address*
3. Address 2
4. Town/City
5. County*
6. Postcode*
7. Is this address also your invoice address?* Yes No
The HTML for above forms:
<fieldset>
<legend>Delivery Details</legend>
<ol>
<li>
<label for="name">Name<em>*</em></label>
</li>
<li>
<label for="address1">Address<em>*</em></label>
</li>
<li>
</li>
<li>
<label for="town-city">Town/City</label>
</li>
<li>
<label for="county">County<em>*</em></label>
</li>
<li>
<label for="postcode">Postcode<em>*</em></label>
</li>
<li>
<fieldset>
address?<em>*</em></legend>
<label><input type="radio" »
<label><input type="radio" »
</fieldset>
</li>
</ol>
</fieldset>
margin-bottom: 10px;
form.cmxform legend {
padding: 0 5px;
font-weight: bold;
form.cmxform label {
display: inline-block;
line-height: 1.8;
vertical-align: top;
width: 120px;
form.cmxform fieldset li {
list-style: none;
border: none;
margin: 3px 0 0;
padding: 0 0 5px;
font-weight: normal;
width: auto;
form.cmxform em {
font-weight: bold;
font-style: normal;
color: #f00;
margin-left: 123px;
<br />
<br />
value="Airplane" />
</form>
Dropdown box
The select element creates a drop-down list.
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
</form>
</form>
JS - Events
Note: many of the contents of this page are taken from w3school website.
Events
Events are actions that can be detected by JavaScript.
JavaScript Events
By using JavaScript, we have the ability to create dynamic web pages. Events are
actions that can be detected by JavaScript.
Every element on a web page has certain events which can trigger JavaScript functions.
For example, we can use the onClick event of a button element to indicate that a function
will run when a user clicks on the button. We define the events in the HTML tags.
Examples of events:
A mouse click
A web page or an image loading
Mousing over a hot spot on the web page
Selecting an input box in an HTML form
Submitting an HTML form
A keystroke
Note: Events are normally used in combination with functions, and the function will not
be executed before the event occurs!
Click here complete list of events.
onload and onUnload
The onload and onUnload events are triggered when the user enters or leaves the page.
The onload event is often used to check the visitor's browser type and browser version,
and load the proper version of the web page based on the information.
Both the onload and onUnload events are also often used to deal with cookies that
should be set when a user enters or leaves a page. For example, you could have a popup
asking for the user's name upon his first arrival to your page. The name is then stored in a
cookie. Next time the visitor arrives at your page, you could have another popup saying
something like: "Welcome John Doe!".
onFocus, onBlur and onChange
The onFocus, onBlur and onChange events are often used in combination with
validation of form fields.
Below is an example of how to use the onChange event. The checkEmail() function will
be called whenever the user changes the content of the field:
<input type="text" size="30" id="email" onchange="checkEmail()">;
onSubmit
The onSubmit event is used to validate ALL form fields before submitting it.
Below is an example of how to use the onSubmit event. The checkForm() function will
be called when the user clicks the submit button in the form. If the field values are not
accepted, the submit should be cancelled. The function checkForm() returns either true or
false. If it returns true the form will be submitted, otherwise the submit will be cancelled:
<form method="post" action="xxx.htm" onsubmit="return checkForm()">
</a>
event.srcElement.style.color=Math.floor(Math.random()*16777216);
onclick
Hello World!
Field1:
Field2:
Click the button below to copy the content of Field1 to Field2.<br />
<button onclick="document.getElementById('field2').value=
document.getElementById('field1').value">Copy Text</button>
</form>
J S - Tr y C a t c h , T h r o w
Note: many of the contents of this page are taken from w3school website.
JavaScript Try...Catch Statement
The try...catch statement allows you to test a block of code for errors.
JavaScript - Catching Errors
When browsing Web pages on the internet, we all have seen a JavaScript alert box
telling us there is a runtime error and asking "Do you wish to debug?". Error message like
this may be useful for developers but not for users. When users see errors, they often leave
the Web page.
This chapter will teach you how to trap and handle JavaScript error messages, so you
don't lose your audience.
There are two ways of catching errors in a Web page:
By using the try...catch statement (available in IE5+, Mozilla 1.0, and Netscape 6)
By using the onerror event. This is the old standard solution to catch errors (available since
Netscape 3)
Try...Catch Statement
The try...catch statement allows you to test a block of code for errors. The try block
contains the code to be run, and the catch block contains the code to be executed if an error
occurs.
Syntax
try
catch(err)
Note that try...catch is written in lowercase letters. Using uppercase letters will generate
a JavaScript error!
Example 1
The example below contains a script that is supposed to display the message "Welcome
guest!" when you click on a button. However, there's a typo in the message() function. alert()
is misspelled as adddlert(). A JavaScript error occurs:
Example script
<script type="text/javascript">
var txt=""
function message()
try
adddlert("Welcome guest!")
catch(err)
txt+="Click OK to continue.\n\n"
alert(txt)
</script>
The HTML:
<form>
</form>
<body>
<script type="text/javascript">
try
if(x>10)
throw "Err1"
else if(x<0)
throw "Err2"
catch(er)
if(er=="Err1")
if(er == "Err2")
</script>
</body>
</html>