Professional Documents
Culture Documents
3. C¸c lÖnh..............................................................................................22
7. Tæng kÕt............................................................................................92
<SCRIPT LANGUAGE=”JavaScript”>
// INSERT ALL JavaScript HERE
</SCRIPT>
§iÓm kh¸c nhau gi÷a có ph¸p viÕt c¸c ghi chó gi÷a HTML vµ JavaScript
lµ cho phÐp b¹n Èn c¸c m· JavaScript trong c¸c ghi chó cña file HTML,
®Ó c¸c tr×nh duyÖt cò kh«ng hç trî cho JavaScript cã thÓ ®äc ®îc nã
nh trong vÝ dô sau ®©y:
<SCRIPT LANGUAGE=”JavaScript”>
<!-- From here the JavaScript code hidden
// INSERT ALL JavaScript HERE
// This is where the hidden ends -->
</SCRIPT>
Dßng cuèi cïng cña script cÇn cã dÊu // ®Ó tr×nh duyÖt kh«ng diÔn
dÞch dßng nµy díi d¹ng m· JavaScript. C¸c vÝ dô trong ch¬ng nµy kh«ng
chøa ®Æc ®iÓm Èn cña JavaScript ®Ó m· cã thÓ dÔ hiÓu h¬n.
2.1.2. Sö dông mét file nguån JavaScript
Thuéc tÝnh SRC cña thÎ <SCRIPT> cho phÐp b¹n chØ râ file nguån
JavaScript ®îc sö dông (dïng ph¬ng ph¸p nµy hay h¬n nhóng trùc tiÕp
mét ®o¹n lÖnh JavaScript vµo trang HTML).
Có ph¸p:
<SCRIPT SRC="file_name.js">
....
</SCRIPT>
Thuéc tÝnh nµy rÊy h÷u dông cho viÖc chia sÎ c¸c hµm dïng chung cho
nhiÒu trang kh¸c nhau. C¸c c©u lÖnh JavaScript nªm trong cÆp thÎ
<SCRIPT> vµ </SCRIPT> cã chøa thuéc tinh SRC trõ khi nã cã lçi. VÝ dô
b¹n muèn ®a dßng lÖnh sau vµo gi÷a cÆp thÎ <SCRIPT SRC="..."> vµ
</SCRIPT>:
document.write("Kh«ng t×m thÊy file JS ®a vµo!");
Thuéc tÝnh SRC cã thÓ ®îc ®Þnh râ bªng ®Þa chØ URL, c¸c liªn kÕt
hoÆc c¸c ®êng dÉn tuyÖt ®èi, vÝ dô:
<SCRIPT SRC=" http://cse.com.vn ">
C¸c file JavaScript bªn ngoµi kh«ng ®îc
Chó ý
chøa bÊt kú thÎ HTML nµo. Chóng chØ ®îc
chøa c¸c c©u lÖnh JavaScript vµ ®Þnh Khi b¹n muèn chØ ra
nghÜa hµm. mét x©u trÝch dÉn
trong mét x©u kh¸c cÇn
Tªn file cña c¸c hµm JavaScript bªn ngoµi sö dông dÊu nh¸y ®¬n (
cÇn cã ®u«i .js, vµ server sÏ ph¶i ¸nh x¹ ' ) ®Ó ph©n ®Þnh x©u
®ã. §iÒu nµy cho phÐp
®u«i .js ®ã tíi kiÓu MIME application/x- script nhËn ra x©u ký
javascript. §ã lµ nh÷ng g× mµ server göi
trë l¹i phÇn Header cña file HTML. §Ó ¸nh x¹ ®u«i nµy vµo kiÓu MIME,
ta thªm dßng sau vµo file mime.types trong ®êng dÉn cÊu h×nh cña
server, sau ®ã khëi ®éng l¹i server:
type=application/x-javascript
NÕu server kh«ng ¸nh x¹ ®îc ®u«i .js tíi kiÓu MIME application/x-
javascript , Navigator sÏ t¶i file JavaScript ®îc chØ ra trong thuéc tÝnh
SRC vÒ kh«ng ®óng c¸ch.
Trong vÝ dô sau, hµm bar cã chøa x©u "left" nªm trong mét cÆp dÊu
nh¸y kÐp:
function bar(widthPct){
vµo. Ngêi sö dông cã thÓ nhËp vµo trêng ®ã råi kÝch vµo OK. Khi ®ã,
ta cã thÓ xö lý d÷ liÖu do ngêi sö dông võa ®a vµo.
VÝ dô: Hép héi tho¹i gåm mét dßng th«ng b¸o, mét trêng nhËp d÷ liÖu,
mét nót OK vµ mét nót Cancel
Ch¬ng tr×nh nµy sÏ hái tªn ngêi dïng vµ sau ®ã sÏ hiÓn thÞ mét th«ng
b¸o ng¾n sö dông tªn míi ®a vµo. VÝ dô ®îc lu vµo file Hello.html
<HTML>
<HEAD>
<TITLE> JavaScript Exemple </TITLE>
<SCRIPT LANGUAGE= “JavaScript”>
var name=window.prompt(“Hello! What’s your name ?”,””);
document.write(“Hello ” + name + “ ! I hope you like JavaScript ”);
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
VÝ dô nµy hiÓn thÞ dÊu nh¾c nhËp vµo tªn víi ph¬ng thøc
window.prompt. Gi¸ trÞ ®¹t ®îc sÏ ®îc ghi trong biÕn cã tªn lµ name.
BiÕn name ®îc kÕt hîp víi c¸c chuçi kh¸c vµ ®îc hiÓn thÞ trong cöa sæ
cña tr×nh duyÖt nhê ph¬ng thøc document.write.
B©y giê b¹n ®· cã ý tëng vÒ c¸c chøc n¨ng cã thÓ ®¹t ®îc qua
JavaScript, chóng ta h·y tiÕp tôc t×m hiÓu thªm vÒ chÝnh ng«n ng÷
nµy.
<BODY>
</BODY>
</HTML>
C¸c tr×nh duyÖt hç trî JavaScript sÏ xö lý chÝnh x¸c vÝ dô trªn vµ ®a ra
kÕt qu¶ díi ®©y:
Tr×nh diÔn dÞch JavaScript sÏ xem biÕn numfruit cã kiÓu nguyªn khi
céng víi 20 vµ cã kiÓu chuçi khi kÕt hîp víi biÓn temp.
Trong JavaScript, cã bèn kiÓu d÷ liÖu sau ®©y: kiÓu sè nguyªn, kiÓu
dÊu phÈy ®éng, kiÓu logic vµ kiÓu chuçi.
§Ó biÓu diÔn dÊu nh¸y kÐp ( " ), trong chuçi sö dông ( \" ), vÝ dô:
document.write(“ \”This text inside quotes.\” ”);
2.1.1.G¸n
To¸n tö g¸n lµ dÊu bªng (=) nhªm thùc hiÖn viÖc g¸n gi¸ trÞ cña to¸n
h¹ng bªn ph¶i cho to¸n h¹ng bªn tr¸i. Bªn c¹nh ®ã JavaScript cßn hç trî
mét sè kiÓu to¸n tö g¸n rót gän.
2.1.2.So s¸nh
Ngêi ta sö dông to¸n tö so s¸nh ®Ó so s¸nh hai to¸n h¹ng vµ tr¶ l¹i gi¸
trÞ ®óng hay sai phô thuéc vµo kÕt qu¶ so s¸nh. Sau ®©y lµ mét sè
to¸n tö so s¸nh trong JavaScript:
== Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i bªng to¸n
h¹ng bªn ph¶i
!= Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i kh¸c to¸n
h¹ng bªn ph¶i
> Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i lín h¬n to¸n
h¹ng bªn ph¶i
>= Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i lín h¬n hoÆc
bªng to¸n h¹ng bªn ph¶i
< Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i nhá h¬n
to¸n h¹ng bªn ph¶i
<= Tr¶ l¹i gi¸ trÞ ®óng nÕu to¸n h¹ng bªn tr¸i nhá h¬n
hoÆc bªng to¸n h¹ng bªn ph¶i
2.1.3.Sè häc
Bªn c¹nh c¸c to¸n tö céng (+), trõ (-), nh©n (*), chia (/) th«ng thêng,
JavaScript cßn hç trî c¸c to¸n tö sau ®©y:
var1% var2 To¸n tö phÇn d, tr¶ l¹i phÇn d khi chia var1 cho
var2
- To¸n tö phñ ®Þnh, cã gi¸ trÞ phñ ®Þnh to¸n
h¹ng
var++ To¸n tö nµy t¨ng var lªn 1 (cã thÓ biÓu diÔn lµ
++var)
var-- To¸n tö nµy gi¶m var ®i 1 (cã thÓ biÓu diÔn lµ
--var)
Chó ý
NÕu b¹n g¸n gi¸ trÞ cña to¸n tö ++ hay -- vµo mét biÕn, nh y= x++,
cã thÓ cã c¸c kÕt qu¶ kh¸c nhau phô thuéc vµo vÞ trÝ xuÊt hiÖn tríc
hay sau cña ++ hay -- víi tªn biÕn (lµ x trong trêng hîp nµy). NÕu ++
®øng tríc x, x sÏ ®îc t¨ng hoÆc gi¶m tríc khi gi¸ trÞ x ®îc g¸n cho y.
NÕu ++ hay -- ®øng sau x, gi¸ trÞ cña x ®îc g¸n cho y tríc khi nã ®îc
t¨ng hay gi¶m.
2.1.4.Chuçi
Khi ®îc sö dông víi chuçi, to¸n tö + ®îc coi lµ kÕt hîp hai chuçi,
vÝ dô:
"abc" + "xyz" ®îc "abcxyz"
2.1.5.Logic
JavaScript hç trî c¸c to¸n tö logic sau ®©y:
expr1 && expr2 Lµ to¸n tö logic AND, tr¶ l¹i gi¸ trÞ ®óng
nÕu c¶ expr1 vµ expr2 cïng ®óng.
expr1 || expr2 Lµ to¸n tö logic OR, tr¶ l¹i gi¸ trÞ ®óng
nÕu Ýt nhÊt mét trong hai expr1 vµ expr2
®óng.
2.1.6.Bitwise
Víi c¸c to¸n tö thao t¸c trªn bit, ®Çu tiªn gi¸ trÞ ®îc chuyÓn díi d¹ng sè
nguyªn 32 bit, sau ®ã lÇn lît thùc hiÖn c¸c phÐp to¸n trªn tõng bit.
& To¸n tö bitwise AND, tr¶ l¹i gi¸ trÞ 1 nÕu c¶ hai bit cïng lµ 1.
| To¸n tö bitwise OR, tr¶ l¹i gi¸ trÞ 1 nÕu mét trong hai bit lµ 1.
^ To¸n tö bitwise XOR, tr¶ l¹i gi¸ trÞ 1 nÕu hai bit cã gi¸ trÞ
kh¸c nhau
Ngoµi ra cßn cã mét sè to¸n tö dÞch chuyÓn bitwise. Gi¸ trÞ ®îc
chuyÓn thµnh sè nguyªn 32 bit tríc khi dÞch chuyÓn. Sau khi dÞch
chuyÓn, gi¸ trÞ l¹i ®îc chuyÓn thµnh kiÓu cña to¸n h¹ng bªn tr¸i. Sau
®©y lµ c¸c to¸n tö dÞch chuyÓn:
<< To¸n tö dÞch tr¸i. DÞch chuyÓn to¸n h¹ng tr¸i sang tr¸i mét
sè lîng bit bªng to¸n h¹ng ph¶i. C¸c bit bÞ chuyÓn sang tr¸i
bÞ mÊt vµ 0 thay vµo phÝa bªn ph¶i. VÝ dô: 4<<2 trë thµnh
16 (sè nhÞ ph©n 100 trë thµnh sè nhÞ ph©n 10000)
>> To¸n tö dÞch ph¶i. DÞch chuyÓn to¸n h¹ng tr¸i sang ph¶i
mét sè lîng bit bªng to¸n h¹ng ph¶i. C¸c bit bÞ chuyÓn sang
ph¶i bÞ mÊt vµ dÊu cña to¸n h¹ng bªn tr¸i ®îc gi÷ nguyªn.
VÝ dô: 16>>2 trë thµnh 4 (sè nhÞ ph©n 10000 trë thµnh sè
nhÞ ph©n 100)
>>> To¸n tö dÞch ph¶i cã chÌn 0. DÞch chuyÓn to¸n h¹ng tr¸i
sang ph¶i mét sè lîng bit bªng to¸n h¹ng ph¶i. Bit dÊu ®îc
dÞch chuyÓn tõ tr¸i (gièng >>). Nh÷ng bit ®îc dÞch sang
ph¶i bÞ xo¸ ®i. VÝ dô: -8>>>2 trë thµnh 1073741822 (bëi
c¸c bit dÊu ®· trë thµnh mét phÇn cña sè). TÊt nhiªn víi sè
d¬ng kÕt qu¶ cña to¸n tö >> vµ >>> lµ gièng nhau.
Bµi tËp
2.1.7.C©u hái
H·y ®¸nh gi¸ c¸c biÓu thøc sau:
1. a. 7 + 5
b. "7" + "5"
c. 7 == 7
d. 7 >= 5
e. 7 <= 7
2. f. (7 < 5) ? 7 : 5
g. (7 >= 5) && (5 > 5)
h. (7 >= 5) || (5 > 5)
2.1.8.Tr¶ lêi
C¸c biÓu thøc ®îc ®¸nh gi¸ nh sau:
1. a. 12
b. "75"
c. true
d. true
e. true
2. f. 5
g. false
h. true
3.C¸c lÖnh
Cã thÓ chia c¸c lÖnh cña JavaScript thµnh ba nhãm sau:
• LÖnh ®iÒu kiÖn.
• LÖnh lÆp.
• LÖnh th¸o t¸c trªn ®èi tîng.
if ... else
C©u lÖnh nµy cho phÐp b¹n kiÓm tra ®iÒu kiÖn vµ thùc hiÖn mét
nhãm lÖnh nµo ®Êy dùa trªn kÕt qu¶ cña ®iÒu kiÖn võa kiÓm tra.
Nhãm lÖnh sau else kh«ng b¾t buéc ph¶i cã, nã cho phÐp chØ ra
nhãm lÖnh ph¶i thùc hiÖn nÕu ®iÒu kiÖn lµ sai.
Có ph¸p
if ( <®iÒu kiÖn> )
{
//C¸c c©u lÖnh víi ®iÒu kiÖn ®óng
}
else
{
//C¸c c©u lÖnh víi ®iÒu kiÖn sai
}
VÝ dô:
if (x==10){
document.write(“x bªng 10, ®Æt l¹i x bªng 0.”);
x = 0;
}
else
document.write(“x kh«ng bªng 10.”);
Chó ý
Ký tù { vµ } ®îc sö dông ®Ó t¸ch c¸c khèi m·.
3.1.2.while
Vßng lÆp while lÆp khèi lÖnh chõng nµo <®iÒu kiÖn> cßn ®îc ®¸nh
gi¸ lµ ®óng
Có ph¸p:
while (<®iÒu kiÖn>)
{
//C¸c c©u lÖnh thùc hiÖn trong khi lÆp
}
VÝ dô:
x=1;
while (x<=10){
y=x*25;
document.write("x="+x +"; y = "+ y + "<BR>");
x++;
}
KÕt qu¶ cña vÝ dô nµy gièng nh vÝ dô tríc.
3.1.3.Break
C©u lÖnh break dïng ®Ó kÕt thóc viÖc thùc hiÖn cña vßng lÆp for
hay while. Ch¬ng tr×nh ®îc tiÕp tôc thùc hiÖn t¹i c©u lÖnh ngay sau
chç kÕt thóc cña vßng lÆp.
Có ph¸p
break;
§o¹n m· sau lÆp cho ®Õn khi x lín h¬n hoÆc bªng 100. Tuy nhiªn nÕu
gi¸ trÞ x ®a vµo vßng lÆp nhá h¬n 50, vßng lÆp sÏ kÕt thóc
VÝ dô:
while (x<100)
{
if (x<50) break;
x++;
}
3.1.4.continue
LÖnh continue gièng lÖnh break nhng kh¸c ë chç viÖc lÆp ®îc kÕt
thóc vµ b¾t ®Çu tõ ®Çu vßng lÆp. §èi víi vßng lÆp while, lÖnh
continue ®iÒu khiÓn quay l¹i <®iÒu kiÖn>; víi for, lÖnh continue
®iÒu khiÓn quay l¹i incrExpr.
Có ph¸p
continue;
VÝ dô:
§o¹n m· sau t¨ng x tõ 0 lªn 5, nh¶y lªn 8 vµ tiÕp tôc t¨ng lªn 10
x=0;
while (x<=10)
{
document.write(“Gi¸ trÞ cña x lµ:”+ x+”<BR>”);
if (x=5)
{
x=8;
continue;
}
x++;
}
3.1.5.for...in
C©u lÖnh nµy ®îc sö dông ®Ó lÆp tÊt c¶ c¸c thuéc tÝnh (properties)
cña mét ®èi tîng. Tªn biÕn cã thÓ lµ mét gi¸ trÞ bÊt kú, chØ cÇn thiÕt
khi b¹n sö dông c¸c thuéc tÝnh trong vßng lÆp. VÝ dô sau sÏ minh ho¹
®iÒu nµy
Có ph¸p
for (<variable> in <object>)
{
//C¸c c©u lÖnh
}
VÝ dô
VÝ dô sau sÏ lÊy ra tÊt c¶ c¸c thuéc tÝnh cña ®èi tîng Window vµ in ra
tªn cña mçi thuéc tÝnh. KÕt qu¶ ®îc minh ho¹ trªn h×nh 5.2.
<HTML>
<HEAD>
<TITLE>For in Example </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
document.write("The properties of the Window object are: <BR>");
for (var x in window)
document.write(" "+ x + ", ");
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
3.1.6.new
BiÕn new ®îc thùc hiÖn ®Ó t¹o ra mét thÓ hiÖn míi cña mét ®èi tîng
Có ph¸p
objectvar = new object_type ( param1 [,param2]...
[,paramN])
VÝ dô sau t¹o ®èi tîng person cã c¸c thuéc tÝnh firstname, lastname,
age, sex. Chó ý rªng tõ kho¸ this ®îc sö dông ®Ó chØ ®èi tîng trong
hµm person. Sau ®ã ba thÓ hiÖn cña ®èi tîng person ®îc t¹o ra bªng
lÖnh new
<HTML>
<HEAD>
<TITLE>New Example </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
function person(first_name, last_name, age, sex){
this.first_name=first_name;
this.last_name=last_name;
this.age=age;
this.sex=sex;
}
person1= new person("Thuy", "Dau Bich", "23", "Female");
person2= new person("Chung", "Nguyen Bao", "24", "Male");
</HTML>
3.1.7.this
Tõ kho¸ this ®îc sö dông ®Ó chØ ®èi tîng hiÖn thêi. §èi tîng ®îc gäi
thêng lµ ®èi tîng hiÖn thêi trong ph¬ng thøc hoÆc trong hµm.
Có ph¸p
this [.property]
Cã thÓ xem vÝ dô cña lÖnh new.
3.1.8.with
LÖnh nµy ®îc sö dông ®Ó thiÕt lËp ®èi tîng ngÇm ®Þnh cho mét
nhãm c¸c lÖnh, b¹n cã thÓ sö dông c¸c thuéc tÝnh mµ kh«ng ®Ò cËp
®Õn ®èi tîng.
Có ph¸p
with (object)
{
// statement
}
VÝ dô:
VÝ dô sau chØ ra c¸ch sö dông lÖnh with ®Ó thiÕt lËp ®èi tîng ngÇm
®Þnh lµ document vµ cã thÓ sö dông ph¬ng thøc write mµ kh«ng
cÇn ®Ò cËp ®Õn ®èi tîng document
<HTML>
<HEAD>
<TITLE>With Example </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
with (document){
write(“This is an exemple of the things that can be done <BR>”);
write(“With the <B>with<B> statment. <P>”);
write(“This can really save some typing”);
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
1.1.1.1.1.H×nh 8: VÝ dô vÒ
hµm
• parseFloat
3.1.9.eval
Hµm nµy ®îc sö dông ®Ó ®¸nh gi¸ c¸c biÓu thøc hay lÖnh. BiÓu thøc,
lÖnh hay c¸c ®èi tîng cña thuéc tÝnh ®Òu cã thÓ ®îc ®¸nh gi¸. §Æc
biÖt hÕt søc h÷u Ých khi ®¸nh gi¸ c¸c biÓu thøc do ngêi dïng ®a vµo
(ngîc l¹i cã thÓ ®¸nh gi¸ trùc tiÕp).
Có ph¸p:
returnval=eval (bÊt kú biÓu thøc hay lÖnh hîp lÖ trong Java)
VÝ dô:
<HTML>
<HEAD>
<TITLE>Eval Example </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
var string=”10+ Math.sqrt(64)”;
document.write(string+ “=”+ eval(string));
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
3.1.10.parseInt
Hµm nµy chuyÓn mét chuçi sè thµnh sè nguyªn víi c¬ sè lµ tham sè
thø hai (tham sè nµy kh«ng b¾t buéc). Hµm nµy thêng ®îc sö dông
®Ó chuyÓn c¸c sè nguyªn sang c¬ sè 10 vµ ®¶m b¶o rªng c¸c d÷ liÖu
®äc nhËp díi d¹ng ký tù ®îc chuyÓn thµnh sè tríc khi tÝnh to¸n. Trong
trêng hîp d÷ liÖu vµo kh«ng hîp lÖ, hµm parseInt sÏ ®äc vµ chuyÓn
d¹ng chuçi ®Õn vÞ trÝ nã t×m thÊy ký tù kh«ng ph¶i lµ sè. Ngoµi ra
hµm nµy cßn c¾t dÊu phÈy ®éng.
Có ph¸p
parseInt (string, [, radix])
VÝ dô:
<HTML>
<HEAD>
<TITLE> perseInt Exemple </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
document.write("Converting 0xC hex to base-10: " +
parseInt(0xC,10) + "<BR>");
document.write("Converting 1100 binary to base-10: " +
parseInt(1100,2) + "<BR>");
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
3.1.11.parseFloat
Hµm nµy gièng hµm parseInt nhng nã chuyÓn chuçi thµnh sè biÓu diÔn
díi d¹ng dÊu phÈy ®éng.
Có ph¸p
parseFloat (string)
VÝ dô:
VÝ dô sau minh ho¹ c¸ch thøc xö lý cña parseFloat víi c¸c kiÓu chuçi
kh¸c nhau. H×nh 5.8 minh häa kÕt qu¶
<HTML> <HEAD>
<TITLE> perseFload Exemple </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
document.write("This script will show how diffrent strings are ");
document.write("Converted using parseFloat<BR>");
document.write("137= " + parseFloat("137") + "<BR>");
document.write("137abc= " + parseFloat("137abc") + "<BR>");
document.write("abc137= " + parseFloat("abc137") + "<BR>");
document.write("1abc37= " + parseFloat("1abc37") + "<BR>");
</SCRIPT>
</HEAD>
<BODY> </BODY>
</HTML>
M¶ng (Array)
MÆc dï JavaScript kh«ng hç trî cÊu tróc d÷ liÖu m¶ng nhng Netscape
t¹o ra ph¬ng thøc cho phÐp b¹n tù t¹o ra c¸c hµm khëi t¹o m¶ng nh
sau:
function InitArray(NumElements){
this.length = numElements;
for (var x=1; x<=numElements; x++){
this[x]=0
}
return this;
}
Nã t¹o ra mét m¶ng víi kÝch thíc x¸c ®Þnh tríc vµ ®iÒn c¸c gi¸ trÞ 0.
Chó ý rªng thµnh phÇn ®Çu tiªn trong m¶ng lµ ®é dµi m¶ng vµ kh«ng
®îc sö dông.
§Ó t¹o ra mét m¶ng, khai b¸o nh sau: H×nh 5.8 : KÕt
myArray = new InitArray (10) qu¶ cña vÝ dô
Nã t¹o ra c¸c thµnh phÇn tõ myArray[1] ®Õn myArray[10] víi gi¸ trÞ lµ
0. Gi¸ trÞ c¸c thµnh phÇn trong m¶ng cã thÓ ®îc thay ®æi nh sau:
myArray[1] = "NghÖ An"
myArray[2] = "Lµo"
Sù kiÖn
JavaScript lµ ng«n ng÷ ®Þnh híng sù kiÖn, nghÜa lµ sÏ ph¶n øng tríc
c¸c sù kiÖn x¸c ®Þnh tríc nh kÝch chuét hay t¶i mét v¨n b¶n. Mét sù
kiÖn cã thÓ g©y ra viÖc thùc hiÖn mét ®o¹n m· lÖnh (gäi lµ c¸c ch¬ng
tri×nh xö lý sù kiÖn) gióp cho ch¬ng tr×nh cã thÓ ph¶n øng mét c¸ch
thÝch hîp.
Ch¬ng tr×nh xö lý sù kiÖn (Event handler): Mét
®o¹n m· hay mét hµm ®îc thùc hiÖn ®Ó ph¶n øng tríc mét sù kiÖn gäi
lµ ch¬ng tr×nh xö lý sù kiÖn. Ch¬ng tr×nh xö lý sù kiÖn ®îc x¸c ®Þnh
lµ mét thuéc tÝnh cña mét thÎ HTML:
<tagName eventHandler = "JavaScript Code or Function">
VÝ dô sau gäi hµm CheckAge() mçi khi gi¸ trÞ cña trêng v¨n b¶n thay
®æi:
<INPUT TYPE=TEXT NAME="AGE" onChange="CheckAge()">
onClick X¶y ra khi ngêi dïng kÝch vµo c¸c thµnh phÇn
hay liªn kÕt cña form.
onChange X¶y ra khi gi¸ trÞ cña thµnh phÇn ®îc chän
thay ®æi
<HEAD>
function CheckAge(form) {
if ( (form.AGE.value<0)||(form.AGE.value>120) )
alert("Tuæi nhËp vµo kh«ng hîp lÖ! Mêi b¹n nhËp l¹i");
form.AGE.value=0;
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="PHIEU_DIEU_TRA">
<P>
<P>
H·y chän nh÷ng ho¹t ®éng ngoµi trêi mµ b¹n yªu thÝch:<BR>
§i bé<INPUT TYPE=CHECKBOX NAME="HOAT_DONG" VALUE="Di bo">
<P>
<INPUT TYPE=SUBMIT>
<INPUT TYPE=RESET>
</FORM>
</BODY>
</HTML>
Bµi tËp
3.1.12.C©u hái
1. ViÕt mét ®o¹n lÖnh JavaScript sö dông c¸ch thøc confirm() vµ c©u
lÖnh if...then ®Ó thùc hiÖn:
Hái ngêi sö dông cã muèn nhËn ®îc mét lêi chµo kh«ng
NÕu cã th× hiÖn ¶nh wellcome.jpg vµ mét lêi chµo.
NÕu kh«ng th× viÕt ra mét lêi th«ng b¸o
2. ViÕt mét ®o¹n lÖnh JavaScript ®Ó thùc hiÖn:
• Hái ngêi sö dông: "10+10 bªng bao nhiªu?"
• NÕu ®óng th× hái tiÕp: Cã muèn tr¶ lêi c©u thø hai kh«ng?"
• NÕu muèn th× hái: "10*10 bªng bao nhiªu?"
• §¸nh gi¸ kÕt qu¶ bªng biÓu thøc logic sau ®ã viÕt ra mµn
h×nh:
§óng: "CORRECT"; Sai: "INCORRECT"
Gîi ý: Sö dông biÕn toµn côc lu kÕt qu¶ ®óng ®Ó so s¸nh víi kÕt
qña ®a vµo.
3. C©u lÖnh nµo trong c¸c c©u sau ®©y sö dông sai thÎ sù kiÖn
a. <BODY onClick="doSomething();">
b. <INPUT TYPE=text onFocus="doSomething();">
c. <INPUT TYPE=textarea onLoad="doSomething();">
d. <BODY onUnload="doSomething();">
e. <FORM onLoad="doSomething();">
f. <FORM onSubmit="doSomething();">
4. §iÒu g× x¶y ra khi thùc hiÖn script sau:
<HTML>
<HEAD>
<TITLE>Exercise 5.4</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- HIDE FROM OTHER BROWSERS
var name = "";
function welcome() {
name = prompt("Welcome to my page! What's Your
Name?","name");
}
function farewell() {
alert("Goodbye " + name + ". Thanks for visiting my page.");
}
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY onLoad="welcome();" onUnload="farewell();";>
This is my page!
</BODY>
</HTML>
5. Sö dông vßng lÆp while ®Ó m« pháng c¸c vßng lÆp for sau:
a.
for (j = 4; j > 0; j --) {
document.writeln(j + "<BR>");
}
b.
for (k = 1; k <= 99; k = k*2) {
k = k/1.5;
}
c.
3.1.13.Tr¶ lêi
1. Sö dông c¸ch thøc confirm() vµ cÊu tróc if...then:
<HTML>
<HEAD>
<TITLE>Execise 5.1</TITLE>
<HEAD>
<BODY>
<P>
<SCRIPT LANGUAGE="JavaScript">
var conf=confirm("Click OK to see a wellcome message!")
if (conf){
document.write("<IMG SRC='wellcome.jpg'>");
document.write("<BR>Wellcome you come to CSE's
class");
}
else
document.write("What a pity! You have just click Cancel
button");
</SCRIPT>
</P>
</BODY>
</HTML>
2. Thùc hiÖn hái ngêi sö dông:
<HTML>
<HEAD>
<TITLE>Exercise 3.3</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- HIDE FROM OTHER BROWSERS
// DEFINE VARIABLES FOR REST OF SCRIPT
var question="What is 10+10?";
var answer=20;
var correct='CORRECT';
var incorrect='INCORRECT';
document.writeln(j + "<BR>");
}
b.
k = 1;
while (k <= 99) {
k = k * 2 / 1.5;
}
c.
num = 0;
while (num <= 10) {
if (num++ == 8)
break;
}
S¬ ®å sau sÏ minh ho¹ sù ph©n cÊp cña c¸c ®èi tîng nµy
Text
Plugin
Layer FileUpload
Frame Mime
Type
Link Password
Area Submit
Location
Anchor Reset
Applet Radio
History
Plugin Checkbox
Form Button
Select Option
Trong s¬ ®å ph©n cÊp nµy, c¸c ®èi tîng con chÝnh lµ c¸c thuéc tÝnh
cña mét ®èi tîng cha. VÝ dô nh mét form tªn lµ form1 chÝnh lµ mét ®èi
tîng con cña ®èi tîng document vµ ®îc gäi tíi lµ document.form1
TÊt c¶ c¸c trang ®Òu cã c¸c ®èi tîng sau ®©y:
• navigator: cã c¸c thuéc tÝnh tªn vµ phiªn b¶n cña Navigator
®ang ®îc sö dông, dïng cho MIME type ®îc hç trî bëi client
vµ plug-in ®îc cµi ®Æt trªn client.
• window: lµ ®èi tîng ë møc cao nhÊt, cã c¸c thuéc tÝnh thùc
hiÖn ¸p dông vµo toµn bé cöa sæ.
• document: chøa c¸c thuéc tÝnh dùa trªn néi dung cña
document nh tªn, mµu nÒn, c¸c kÕt nèi vµ c¸c forms.
• location: cã c¸c thuéc tÝnh dùa trªn ®Þa chØ URL hiÖn thêi
• history: Chøa c¸c thuéc tÝnh vÒ c¸c URL mµ client yªu cÇu
tríc ®ã.
Sau ®©y sÏ m« t¶ c¸c thuéc tÝnh, ph¬ng thøc còng nh c¸c ch¬ng
tr×nh xö lý sù kiÖn cho tõng ®èi tîng trong JavaScript.
VÝ dô
VÝ dô sau sÏ hiÓn thÞ c¸c thuéc tÝnh cña ®èi tîng navigator
<HTML>
<HEAD>
<TITLE> Navigator Object Exemple </TITLE>
<SCRIPT LANGUAGE= "JavaScript">
document.write("appCodeName = "+navigator.appCodeName +
"<BR>");
document.write("appName = "+navigator.appName + "<BR>");
document.write("appVersion = "+navigator.appVersion + "<BR>");
document.write("userAgent = "+navigator.userAgent + "<BR>");
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
• defaultStatus - Th«ng b¸o ngÇm ®Þnh hiÓn thÞ lªn trªn thanh
tr¹ng th¸i cña cöa sæ
• Frames - M¶ng x¸c ®Þnh tÊt c¶ c¸c frame trong cöa sæ.
• Length - Sè lîng c¸c frame trong cöa sæ cha mÑ.
• Name - Tªn cña cöa sæ hiÖn thêi.
• Parent - §èi tîng cöa sæ cha mÑ
• Self - Cöa sæ hiÖn thêi.
• Status - §îc sö dông cho th«ng b¸o t¹m thêi hiÓn thÞ lªn trªn
thanh th¹ng th¸i cöa sæ. §ù¬c sö dông ®Ó lÊy hay ®Æt l¹i
th«ng b¸o tr¹ng th¸i vµ ghi ®Ì lªn defaultStatus.
• Top - Cöa sæ ë trªn cïng.
• Window - Cöa sæ hiÖn thêi.
• alert ("message") -HiÓn thÞ hép héi tho¹i víi chuçi "message"
vµ nót OK.
• clearTimeout(timeoutID) -Xãa timeout do SetTimeout ®Æt.
SetTimeout tr¶ l¹i timeoutID
• windowReference.close -§ãng cöa sæ windowReference.
• confirm("message") -HiÓn thÞ hép héi tho¹i víi chuçi
"message", nót OK vµ nót Cancel. Tr¶ l¹i gi¸ trÞ True cho OK vµ
False cho Cancel.
• [windowVar = ][window]. open("URL", "windowName",
[ "windowFeatures" ] ) - Më cöa sæ míi.
• prompt ("message" [,"defaultInput"]) - Më mét hép héi tho¹i
®Ó nhËn d÷ liÖu vµo trêng text.
• TimeoutID = setTimeout(expression,msec) - §¸nh gi¸ biÓu thøc
expresion sau thêi gian msec.
VÝ dô: Sö dông tªn cöa sæ khi gäi tíi nã nh lµ ®Ých cña mét form
submit hoÆc trong mét Hipertext link (thuéc tÝnh TARGET cña thÎ
FORM vµ A).
Trong vÝ dô t¹o ra mét tíi cöa sæ thø hai, nh nót thø nhÊt ®Ó më mét
cöa sæ rçng, sau ®ã mét liªn kÕt sÏ t¶i file doc2.html xuèng cöa sæ míi
®ã råi mét nót kh¸c dïng ®Ó ®ãng cña sæ thø hai l¹i, vÝ dô nµy la vµo
file window.html:
<HTML>
<HEAD>
<TITLE>Frame Example </TITLE>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE="button" VALUE="Open Second Window"
onClick="msgWindow=window.open('','window2','resizable=no,w
idth=200,height=200')">
<P>
<A HREF="doc2.html" TARGET="window2">
Load a file into window2 </A>
</P>
<INPUT TYPE="button" VALUE="Close Second Window"
onClick="msgWindow.close()">
</FORM>
</BODY>
</HTML>
• Port - Cæng truyÒn th«ng ®îc sö dông cho m¸y tÝnh host, th-
êng lµ cæng ngÇm ®Þnh.
• Protocol - Giao thøc ®îc sö dông (cïng víi dÊu hai chÊm) (vÝ dô
http:).
• Search - C©u truy vÊn t×m kiÕm cã thÓ ë cuèi URL cho c¸c
script CGI.
</FRAMESET >
<FRAME SRC=NAVIGATOR.HTM NAME="navigateFrame">
</FRAMESET >
</HEAD>
<BODY> </BODY>
</HTML>
S¬ ®å sau hiÓn thÞ cÊu tróc cña c¸c frame: C¶ 3 frame ®Òu trªn cïng
mét cöa sæ cha, mÆc dï 2 trong sè c¸c frame ®ã nªm trong mét
frameset kh¸c.
Top
listFrame
(category.html)
contentFrame
(titles.html)
navigatorFrame
(navigator.html)
B¹n cã thÓ gäi tíi nh÷ng frame tríc ®ã bªng c¸ch sö dông thuéc tÝnh
frames nh sau:
listFrame chÝnh lµ top.frames[0]
contentFrame chÝnh lµ top.frames[1]
navigatorFrame chÝnh lµ top.frames[2]
VÝ dô 2: Còng gièng nh mét sù lùa chän, b¹n cã thÓ t¹o ra mét cöa sæ
gièng nh vÝ dô tríc nhng trong mçi ®Ønh cña hai frame l¹i cã mét cöa
sæ cha riªng tõ navigateFrame. Møc frameset cao nhÊt cã thÓ ®îc
®Þnh nghÜa nh sau:
<HTML>
<HEAD>
<TITLE>Frame Example </TITLE>
<FRAMESET ROWS="90%,10%">
<FRAME SRC=muske13.HTML NAME="upperFrame">
<FRAME SRC=NAVIGATOR.HTM NAME="navigateFrame">
</FRAMESET >
</HEAD>
<BODY>
</BODY>
</HTML>
</HEAD>
<BODY>
</BODY>
</HTML>
Khi ®ã kÕt qu¶ hiÓn thÞ cña vÝ dô 2 gièng vÝ dô 1 nhng sù ph©n cÊp
cña c¸c frames l¹i kh¸c h¼n:
B¹n cã thÓ gäi tíi c¸c frame trªn bªng c¸ch sö dông thuéc tÝnh m¶ng
frames nh sau:
top
listFrame (category.html)
upperFrame
(muske13.html)
contentFrame (titles.html)
navigatorFrame
(navigator.html)
C¸c ®èi tîng anchor, forms, history, links lµ thuéc tÝnh cña ®èi tîng
document. Kh«ng cã c¸c ch¬ng tr×nh xö lý sù kiÖn cho c¸c frame. Sù
kiÖn onLoad vµ onUnLoad lµ cho ®èi tîng window.
M¶ng anchor cã mét thuéc tÝnh duy nhÊt lµ length x¸c ®Þnh sè lîng
c¸c anchor trong document, nã cã thÓ ®îc x¸c ®Þnh nh sau:
document.anchors.length.
document.links [index]
§Ó x¸c ®Þnh c¸c thuéc tÝnh cña ®èi tîng link, cã thÓ sö dông URL t¬ng
tù:
http://www.abc.com/chap1/page2.html#topic3
• Math.abs (number) - Tr¶ l¹i gi¸ trÞ tuyÖt ®èi cña number.
• Math.acos (number) - Tr¶ l¹i gi¸ trÞ arc cosine (theo radian)
cña number. Gi¸ trÞ cña number ph¶i n¨mg gi÷a -1 vµ 1.
• Math.asin (number) - Tr¶ l¹i gi¸ trÞ arc sine (theo radian) cña
number. Gi¸ trÞ cña number ph¶i n¨mg gi÷a -1 vµ 1.
• Math.atan (number) - Tr¶ l¹i gi¸ trÞ arc tan (theo radian) cña
number.
• Math.ceil (number) - Tr¶ l¹i sè nguyªn nhá nhÊt lín h¬n hoÆc
bªng number.
• Math.cos (number) - Tr¶ l¹i gi¸ trÞ cosine cña number.
• Math.exp (number) - Tr¶ l¹i gi¸ trÞ e^ number, víi e lµ hªng sè
Euler.
• Math.floor (number) - Tr¶ l¹i sè nguyªn lín nhÊt nhá h¬n hoÆc
bªng number.
Mçi phÇn tö cã thÓ ®îc ®Æt tªn ®Ó JavaScript truy nhËp ®Õn chóng
qua tªn
4.1.21.PhÇn tö button
Trong mét form HTML chuÈn, chØ cã hai nót bÊm cã s½n lµ submit vµ
reset bëi vÞ d÷ liÖu trong form ph¶i ®îc göi tíi mét vµi ®Þa chØ URL
(thêng lµ CGI-BIN script) ®Ó xö lý vµ lu tr÷.
Mét phÇn tö button ®îc chØ ®Þnh râ khi sö dông thÎ INPUT:
<INPUT TYPE="button" NAME="name" VALUE= "buttonName">
Trong thÎ INPUT, name lµ tªn cña button, thuéc tÝnh VALUE cã chøa
nh·n cña button sÏ ®îc hiÓn thÞ trªn Navigator cña browser.
ChØ cã mét thÎ sù kiÖn duy nhÊt ®èi víi button lµ onClick. KÕt hîp víi
nã lµ c¸ch thøc duy nhÊt click.PhÇn tö buttton cã kh¶ n¨ng më réng
cho phÐp ngêi lËp tr×nh JavaScript cã thÓ viÕt ®îc mét ®o¹n m· lÖnh
JavaScript ®Ó thùc thi viÖc thªm vµo mét nót bÊm trong mét script.
Trong vÝ dô sau, thay v× sö dông onChange, b¹n cã thÓ chØnh söa
script ®Ó ®Þnh gi¸ biÓu thøc khi button ®îc bÊm.
VÝ dô: §Þnh gi¸ mét form sö dông phÇn tö button.
<HTML>
<HEAD>
<TITLE>button Example</TITLE>
<SCRIPT LANGUAGE="JavaScript">
4.1.22.PhÇn tö checkbox
C¸c phÇn tö checkbox cã kh¶ n¨ng bËt t¾t dïng ®Ó chän hoÆc kh«ng
chän mét th«ng tin. C¸c checkbox cã nhiÒu thuéc tÝnh vµ c¸ch thøc
h¬n button. B¶ng díi ®©y lµ danh s¸ch c¸c thuéc tÝnh vµ c¸c c¸ch thøc
cña phÇn tö checkbox.
B¶ng . C¸c thuéc tÝnh vµ c¸ch thøc cña phÇn tö checkbox.
C¸ch thøc vµ M« t¶
thuéc tÝnh
checked Cho biÕt tr¹ng th¸i hiÖn thêi cña checkbox (thuéc
tÝnh)
defaultChecked Cho biÕt tr¹ng th¸i mÆc ®Þnh cña phÇn tö (thuéc
tÝnh)
name Cho biÕt tªn cña phÇn tö ®îc chØ ®Þnh trong thÎ
INPUT (thuéc tÝnh)
value Cho biÕt gi¸ trÞ hiÖn thêi cña phÇn tö ®îc chØ
®Þnh trong thÎ INPUT (thuéc tÝnh)
click() M« t¶ mét click vµo checkbox (C¸ch thøc)
PhÇn tö checkbox chØ cã mét thÎ sù kiÖn lµ onClick
VÝ dô: T¹o hép checkbox ®Ó nhËp vµo mét sè råi lùa chän tÝnh nh©n
®«i vµ b×nh ph¬ng:
<HTML>
<HEAD>
<TITLE>checkbox Example</TITLE>
<SCRIPT>
<!-- HIDE FROM OTHER BROWSERS
function calculate(form,callingField) {
if (callingField == "result") { // if(1)
if (form.square.checked) { // if(2)
form.entry.value = Math.sqrt(form.result.value);
}
else {
form.entry.value = form.result.value / 2;
} //end if(2)
}
else{
if (form.square.checked) { // if(3)
form.result.value=form.entry.value*form.entry.value;
}
else {
form.result.value = form.entry.value * 2;
} //enfzd if(3)
}//end if(1)
}//end function
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=POST>
Value: <INPUT TYPE="text" NAME="entry" VALUE=0
onChange="calculate(this.form,this.name);">
<BR>
Action (default double): <INPUT TYPE=checkbox NAME=square
onClick="calculate(this.form,this.name);">
Square
<BR>
Result: <INPUT TYPE="text" NAME="result" VALUE=0
onChange="calculate(this.form,this.name);">
</FORM>
</BODY>
</HTML>
Trong script nµy, b¹n ®· thÊy c¸ch sö dông thÎ sù kiÖn onClick còng nh
thuéc tÝnh checked lµ mét gi¸ trÞ kiÓu Boolean cã thÓ dïng lµm ®iÒu
kiÖn trong c©u lÖnh if...else
B¹n cã thÓ thªm mét checkbox tªn lµ square vµo form. NÕu hép nµy ®-
îc check, ch¬ng tr×nh sÏ lÊy gi¸ trÞ cña nã, nÕu kh«ng, mét thùc thi ®-
îc mÆc ®Þnh sÏ nh©n ®«i gi¸ trÞ cña nã. ThÎ sù kiÖn onClick trong
checkbox ®îc ®Þnh nghÜa:
(<INPUT TYPE=checkbox NAME=square onClick= "calculate( this.form,
this.name);"> )
Khi ®ã nÕu ngêi dïng thay ®æi mét c©u lÖnh kh¸c, form sÏ ®îc tÝnh
to¸n l¹i.
§Ó t¹o ra sù më réng cho checkbox. b¹n cã thÓ thay ®æi hµm
calculate() nh sau:
function calculate(form,callingField) {
if (callingField == "result") { // if (1)
if (form.square.checked) { // if (2)
form.entry.value = Math.sqrt(form.result.value);
}
else {
form.entry.value = form.result.value / 2;
} //end if(2)
}
else {
if (form.square.checked) { // if (3)
form.result.value=form.entry.value*form.entry.value;
}
else {
form.result.value = form.entry.value * 2;
} // end if (3)
} // end if (1)
}
4.1.24.PhÇn tö hidden
PhÇn tö hidden lµ phÇn tö duy nhÊt trong sè tÊt c¶ c¸c phÇn tö cña
form kh«ng ®îc hiÓn thÞ trªn Web browser. Trêng hidden cã thÓ sö
dông ®Ó lu c¸c gi¸ trÞ cÇn thiÕt ®Ó göi tíi server song song víi sù xuÊt
ra tõ form (form submission) nhng nã kh«ng ®îc hiÓn thÞ trªn trang.
Mäi ngêi cã thÓ sö dông trong JavaScript ®Ó lu c¸c gi¸ trÞ trong suèt
mét script vµ ®Ó tÝnh to¸n kh«ng cÇn form.
§èi tîng hidden chØ cã hai thuéc tÝnh lµ name vµ value, ®ã còng lµ
nh÷ng gi¸ trÞ x©u gièng c¸c ®èi tîng kh¸c. Kh«ng cã c¸ch thøc hay thÎ
sù kiÖn nµo cho ®èi tîng nµy.
4.1.25.PhÇn tö Password
§èi tîng Password lµ ®èi tîng duy nhÊt trong c¸c ®èi tîng cña form mµ
khi gâ bÊt kú ký tù nµo vµo còng ®Òu hiÓn thÞ dÊu sao(*). Nã cho
phÐp ®a vµo nh÷ng th«ng tin bÝ mËt nh ®¨ng ký mËt khÈu...
§èi tîng Password cã 3 thuéc tÝnh gièng trêng text lµ: defaultValue,
name vµ value. Kh«ng gièng víi hai phÇn tö ë trªn, trêng Password cã
nhiÒu c¸ch thøc h¬n(focus(), blur(), and select() ) vµ t¬ng øng víi c¸c
thÎ sù kiÖn: onFocus, onBlur, and onSelect.
PhÇn nµy sÏ ®îc nãi kü h¬n trong ®èi tîng text.
4.1.26.PhÇn tö radio
§èi tîng radio gÇn gièng sù bËt t¾t checkbox khi cã hai nót radio kÕt
hîp thµnh mét nhãm. Khi nhiÒu radio ®îc kÕt hîp thµnh mét nhãm, chØ
cã mét nót ®îc chän trong bÊt kú mét thêi ®iÓm nµo. VÝ dô dßng lÖnh
sau t¹o ra mét nhãm radio cã ba nót tªn lµ test:
<INPUT TYPE="radio" NAME="test" VALUE="1" chECKED>1<BR>
<INPUT TYPE="radio" NAME="test" VALUE="2">2<BR>
<INPUT TYPE="radio" NAME="test" VALUE="3">3<BR>
Nhãm c¸c nót radio l¹i bªng c¸ch ®Æt cho chóng cã cïng mét tªn trong
c¸c thÎ INPUT.
Cã mét vµi thuéc tÝnh ®Ó kiÓm tra tr¹ng th¸i hiÖn thêi cña mét nhãm
nót radio. B¶ng sau hiÓn thÞ c¸c thuéc tÝnh vµ c¸ch thøc cña ®èi tîng
radio.
B¶ng? . C¸c thuéc tÝnh vµ c¸ch thøc cña ®èi tîng radio.
Thuéc tÝnh vµ M« t¶
c¸ch thøc
form.result.value=form.entry.value*form.entry.value;
} else {
form.result.value = form.entry.value * 2;
}
}
}
// STOP HIDING FROM OTHER BROWSERS -->
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=POST>
Value: <INPUT TYPE="text" NAME="entry" VALUE=0
onChange="calculate(this.form,this.name);"> <BR>
Action:<BR>
<INPUT TYPE="radio" NAME="action" VALUE="twice"
onClick="calculate(this.form,this.name);"> Double<BR>
<INPUT TYPE="radio" NAME="action" VALUE="square"
onClick="calculate(this.form,this.name);"> Square <BR>
Result: <INPUT TYPE=text NAME="result" VALUE=0
onChange="calculate(this.form,this.name);">
</FORM>
</BODY>
</HTML>
Trong vÝ dô nµy, sù thay ®æi tõ checkbox ë trªn lµ rÊt khã nhËn biÕt.
Thay cho mét checkbox trong vÝ dô tríc, ë ®©y ta sö dông hai nót
radio víi hai gi¸ trÞ kh¸c nhau: double vµ square
Nh ta ®· biÕt cã thÓ truy nhËp ®Õn c¸c nót radio qua mét m¶ng, do
®ã hai nót nµy cã thÓ truy nhËp bªng action[0] vµ action[1]. Bªng
c¸ch nµy, b¹n chØ cÇn thay ®æi tham chiÕu ®Õn hµm calculate() tõ
form.square.checked thµnh form.action[1].checked.
4.1.27.PhÇn tö reset
Sö dông ®èi tîng reset, b¹n cã thÓ t¸c ®éng ngîc l¹i ®Ó click vµo nót
Reset. Còng gièng ®èi tîng button, ®èi tîng reset cã hai thuéc tÝnh lµ
name vµ value, vµ mét c¸ch thøc click(), mét thÎ sù kiÖn onClick.
HÇu hÕt nh÷ng ngêi lËp tr×nh khong sö dông thÎ sù kiÖn onClick cña
nót reset ®Ó kiÓm tra gi¸ trÞ cña nót nµy, ®èi tîng reset thêng dïng
®Ó xo¸ form.
VÝ dô sau minh ho¹ c¸ch sö dông nót reset ®Ó xo¸ c¸c gi¸ trÞ cña form.
VÝ dô:
<HTML>
<HEAD>
<TITLE>reset Example</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- HIDE FROM OTHER BROWSERS
function clearForm(form) {
form.value1.value = "Form";
form.value2.value = "Cleared";
}
// STOP HIDING FROM OTHER BROWSERS -->
//SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=POST>
<INPUT TYPE="text" NAME="value1"><BR>
<INPUT TYPE="text" NAME="value2"><BR>
<INPUT TYPE="reset" VALUE="Clear Form" onClick="clearForm(this.form);">
</FORM>
</BODY>
</HTML>
4.1.28.PhÇn tö select
Danh s¸ch lùa chän trong c¸c form HTML xuÊt hiÖn menu drop-down
hoÆc danh s¸ch cuén ®îc cña c¸c ®èi tîng cã thÓ ®îc lùa chän. C¸c
danh d¸ch ®îc x©y dùng bªng c¸ch sö dông hai thÎ SELECT vµ OPTION.
VÝ dô:
<SELECT NAME="test">
<OPTION SELECTED>1
<OPTION>2
<OPTION>3
</SELECT>
t¹o ra ba thµnh phÇn cña menu th¶ drop-down víi ba lùa chän 1,2 vµ 3.
Sö dông thuéc tÝnh SIZE b¹n cã thÓ t¹o ta mét danh s¸ch cuén víi sè
phÇn tö hiÓn thÞ ë lÇn thø nhÊt. §Ó bËt menu drop-down trong mét
menu cuén víi hai thµnh phÇn hiÓn thÞ, b¹n cã thÓ sö dông nh sau:
<SELECT NAME="test" SIZE=2>
<OPTION SELECTED>1
<OPTION>2
<OPTION>3
</SELECT>
Trong c¶ hai vÝ dô trªn, ngêi sö dông chØ cã thÓ cã mét lùa chän. NÕu
sö dông thuéc tÝnh MULTIPLE, b¹n cã thÓ cho phÐp ngêi sö dông lùa
chän nhiÒu h¬n mét gi¸ trÞ trong danh s¸ch lùa chän:
<SELECT NAME="test" SIZE=2 MULTIPLE>
<OPTION SELECTED>1
<OPTION>2
<OPTION>3
</SELECT>
Danh s¸ch lùa chän trong JavaScript lµ ®èi tîng select. §èi tîng nµy t¹o
ra mét vµi thµnh phÇn t¬ng tù c¸c button vµ radio.
Víi c¸c thµnh phÇn lùa chän, danh s¸ch c¸c lùa chän ®îc chøa trong
mét m¶ng ®îc ®¸nh sè tõ 0. Trong trêng hîp nµy, m¶ng lµ mét thuéc
tÝnh cña ®èi tîng select gäi lµ options.
C¶ viÖc lùa chän c¸c option vµ tõng phÇn tö option riªng biÖt ®Òu cã
nh÷ng thuéc tÝnh. Bæ sung thªm vµo m¶ng option, phÇn tö select cã
thuéc tÝnh selectedIndex, cã chøa sè thø tù cña option ®îc lùa chän
hiÖn thêi.
Mçi option trong danh s¸ch lùa chän ®Òu cã mét vµi thuéc tÝnh:
• DEFAULTSELECTED: cho biÕt option cã ®îc mÆc ®Þnh lµ lùa
chän trong thÎ OPTION hay kh«ng.
• INDEX: chøa gi¸ trÞ sè thø tù cña option hÞªn thêi trong m¶ng
option.
• SELECTED: cho biÕt tr¹ng th¸i hiÖn thêi cña option
• TEXT: cã chøa gi¸ trÞ cña dßng text hiÓn thÞ trªn menu cho
mçi option, vµ thuéc tÝnh value mäi gi¸ trÞ chØ ra trong thÎ
OPTION.
§èi tîng select kh«ng cã c¸c c¸ch thøc ®îc ®Þnh nghÜa s½n. Tuy nhiªn,
®èi tîng select cã ba thÎ sù kiÖn, ®ã lµ onBlue, onFocus, onChange,
chóng ®Òu lµ nh÷ng ®èi tîng text.
VÝ dô b¹n cã danh s¸ch lùa chän sau:
<SELECT NAME="example" onFocus="react();">
<OPTION SELECTED VALUE="Number One">1
<OPTION VALUE="The Second">2
<OPTION VALUE="Three is It">3
</SELECT>
Khi lÇn ®Çu tiªn hiÓn thÞ b¹n cã thÓ truy nhËp tíi c¸c th«ng tin sau:
example.options[1].value = "The Second"
example.options[2].text = "3"
example.selectedIndex = 0
example.options[0].defaultSelected = true
example.options[1].selected = false
NÕu ngêi sö dông kÝch vµo menu vµ lùa chän option thø hai, th× thÎ
onFocus sÏ thùc hiÖn, vµ khi ®ã gi¸ trÞ cña thuéc tÝnh sÏ lµ:
example.options[1].value = "The Second"
example.options[2].text = "3"
example.selectedIndex = 1
example.options[0].defaultSelected = true
example.options[1].selected = true
Söa c¸c danh s¸ch lùa chän
Navigator 3.0 cho phÐp thay ®æi néi dung cña danh s¸ch lùa chän tõ
JavaScript bªng c¸ch liªn kÕt c¸c gi¸ trÞ míi cho thuéc tÝnh text cña c¸c
thùc thÓ trong danh s¸ch.
VÝ dô, trong vÝ dô tríc, b¹n ®· t¹o ra mét danh s¸ch lùa chän nh sau:
<SELECT NAME="example" onFocus="react();">
<OPTION SELECTED VALUE="Number One">1
<OPTION VALUE="The Second">2
<OPTION VALUE="Three is It">3
</SELECT>
Cã thÓ thay ®æi ®îc dßng text hiÓn thÞ trªn nót thø hai
thµnh "two" b¨ng:
example.options[1].text = "two";
Cã thÓ thªm c¸c lùa chän míi vµo danh s¸ch bªng c¸ch
sö dông ®èi tîng x©y dùng Option() theo có ph¸p:
newOptionName = new Option(optionText, optionValue,
defaultSelected, selected);
selectListName.options[index] = newOptionName;
ViÖc t¹o ®èi tîng option() nµy víi dßng text ®îc chØ tríc,
defaultSelected vµ selected nh trªn ®· ®Þnh ra nh÷ng
gi¸ trÞ kiÓu Boolean. §èi tîng nµy ®îc liªn kÕt vµo danh
s¸ch lùa chän ®îc thùc hiÖn bªng index.
C¸c lùa chän cã thÓ bÞ xo¸ trong danh s¸ch lùa chän
bªng c¸ch g¾n gi¸ trÞ null cho ®èi tîng muèn xo¸
selectListName.options[index] = null;
2</SELECT>)
submit thuéc tÝnh Thuéc tÝnh kiÓu cña nót
HTML submit (<INPUT
TYPE=submit>)
text thuéc tÝnh Thuéc tÝnh kiÓu cña trêng
HTML trong form (<INPUT
TYPE=text>)
TEXTAREA ThÎ HTML Hép thÎ cho nhiÒu dßng text
(<TEXTAREA> defautl text
</TEXTAREA>)
name thuéc tÝnh X©u chøa tªn phÇn tö HTML
JavaScript (button, checkbox,
password...)
value thuéc tÝnh X©u chøa gi¸ trÞ hiªn thêi cña
JavaScript mét phÇn tö HTML(button,
checkbox, password...)
click() c¸ch thøc M« t¶ viÖc kÝch vµo mét
JavaScript phÇn tö trªn form (button,
checkbox,password)
onClick thuéc tÝnh ThÎ sù kiÖn cho sù kiÖn kÝch
JavaScript (button, checkbox, radio
button, reset, selection list,
submit)
checked thuéc tÝnh Gi¸ trÞ kiÓu Boolean m« t¶
JavaScript mét lùa chän check(checkbox,
radio button)
defaultChecke thuéc tÝnh X©u chøa gi¸ trÞ mÆc ®Þnh
d JavaScript cña mét phÇn tö HTML
(password, text, textarea)
focus() c¸ch thøc M« t¶ viÖc con trá tíi mét
JavaScript phÇn tö (password, text,
textarea)
blur() c¸ch thøc M« t¶ viÖc con trá rêi khái
JavaScript mét phÇn tö (password, text,
textarea)
select() c¸ch thøc M« t¶ viÖc lùa chän dßng text
JavaScript trong mét trêng (password,
text, textarea)
onFocus() ThÎ sù kiÖn ThÎ sù kiÖn cho sù kiÖn
focus(password, selection
list, text, textarea)
onBlur ThÎ sù kiÖn ThÎ sù kiÖn cho sù kiÖn blur
(password, selection list, text,
textarea)
onChange ThÎ sù kiÖn ThÎ sù kiÖn cho sù kiÖn khi gi¸
trÞ cña trêng thay ®æi
(password, selection list, text,
textarea)
onSelect ThÎ sù kiÖn ThÎ sù kiÖn khi ngêi sö dông
chän dßng text trong mét tr-
êng (password, text,
textarea)
index thuéc tÝnh Lµ mét sè nguyªn m« t¶ lùa
JavaScript chän hiÖn thêi trong mét
nhãm lùa chän (radio button)
length thuéc tÝnh Sè nguyªn m« t¶ tæng sè c¸c
JavaScript lùa chän trong mét nhãm c¸c
lùa chän (radio button)
dafautlSelect thuéc tÝnh Gi¸ trÞ Boolean m« t¶ khi cã
ed JavaScript mét lùa chän ®îc ®Æt lµ
mÆc ®Þnh (seledtion list)
options thuéc tÝnh M¶ng c¸c lùa chän trong danh
JavaScript s¸ch lùa chän
text thuéc tÝnh Dßng text hiÓn thÞ cho mét
JavaScript thµnh phÇn cña menu trong
danh s¸ch lùa chän
TABLE thÎ HTML Hép thÎ cho c¸c b¶ng HTML
TR thÎ HTML Hép thÎ cho c¸c hµng cña mét
b¶ng HTML
TD thÎ HTML Hép thÎ cho c¸c « cña mét
hµng trong mét b¶ng HTML
COLSPAN thuéc tÝnh Lµ thuéc tÝnh cña thÎ TD m«
HTML t¶ trong mét « cña b¶ng cã
nhiÒu cét
C¶ tªn ®èi tîng vµ tªn thuéc tÝnh ®Òu nh¹y c¶m. B¹n ®Þnh
nghÜa mét thuéc tÝnh bªng c¸ch g¸n cho nã mét gi¸ trÞ. VÝ dô, gi¶ sö
cã mét ®èi tîng tªn lµ myCar (trong trêng hîp nµy gi¶ sö ®èi tîng nµy
®· tån t¹i s½n sµng). B¹n cã thÓ lÊy c¸c thuéc tÝnh cã tªn make, model
vµ year cña nã nh sau:
myCar.make = “Ford“
myCar.model = “Mustang“
myCar.year = 69;
Cã mét m¶ng lu tr÷ tËp hîp c¸c gi¸ trÞ tham chiÕu tíi tõng biÕn.
Thuéc tÝnh vµ m¶ng trong JavaScript cã quan hÖ mËt thiÕt víi nhau,
thùc ra chóng chØ kh¸c nhau vÒ c¸ch giao tiÕp víi cïng mét cÊu tróc d÷
liÖu. VÝ dô còng cã thÓ truy nhËp tíi c¸c thuéc tÝnh cña ®èi tîng myCar
ë trªn bªng m¶ng nh sau:
myCar[make] = “Ford“
myCar[model] = “Mustang“
myCar[year] = 69;
KiÓu m¶ng nµy ®îc hiÓu nh mét m¶ng cã kh¶ n¨ng liªn kÕt bëi
mçi mét phÇn tö trong ®ã ®Òu cã thÓ liªn kÕt ®Õn mét gi¸ trÞ x©u
nµo ®ã. §Ó minh ho¹ viÖc mµy ®îc thùc hiÖn nh thÕ nµo, hµm sau
®©y sÏ hiÓn thÞ c¸c thuéc tÝnh cña mét ®èi tîng th«ng qua tham sè
vÒ kiÓu ®èi tîng ®ã vµ tªn ®èi tîng.
function show_props (obj, obj_name)
{
var result=””
for (i in obj)
result=result+ obj_name + “.”+ i+ “=” + obj[i] +
“\n”
return result
}
Chó ý rªng thuéc tÝnh engine còng lµ mét ®èi tîng víi c¸c thuéc
tÝnh cña nã
Trong Navigator 4.0, b¹n còng cã thÓ sö dông mét khëi t¹o ®Ó t¹o
mét m¶ng. Có ph¸p ®Ó t¹o m¶ng bªng c¸ch nµy kh¸c víi t¹o ®èi tîng:
arrayName=[element0, element1,...,elementN]
Trong ®ã, arrayName lµ tªn cña m¶ng míi, vµ mçi elementI lµ
gi¸ trÞ cña phÇn tö ë vÞ trÝ ®ã cña m¶ng. Khi b¹n t¹o mét m¶ng bªng
c¸ch sö dông ph¬ng ph¸p khëi t¹o, th× nã sÏ coi mçi gi¸ trÞ lµ mét phÇn
tö trªn m¶ng, vµ chiÒu dµi cña m¶ng chÝnh lµ sè c¸c tham sè.
B¹n kh«ng cÇn ph¶i chØ ®Þnh râ tÊt c¶ c¸c phÇn tö trªn m¶ng
míi. NÕu b¹n ®Æt hai dÊu phÈy vµo hµng, th× m¶ng sÏ ®îc t¹o víi
nh÷ng chèn trèng cho nh÷ng phÇn tö cha ®îc ®Þnh nghÜa nh vÝ dô d-
íi ®©y:
NÕu mét m¶ng ®îc t¹o bªng c¸ch khëi t¹o(initializer) ë møc cao
nhÊt, mçi lÇn m¶ng ®ã xuÊt hiÖn trong c¸c biÓu thøc, JavaScript sÏ
®¸nh gi¸ l¹i nã mét lÇn. Ngoµi ra, nÕu sö dông viÖc khëi t¹o nµy trong
mét hµm th× mçi lÇn gäi hµm, m¶ng sÏ ®îc khëi t¹o mét lÇn
VÝ dô1: T¹o mét m¶ng coffees víi 3 phÇn tö vµ ®é dµi cña m¶ng
lµ 3:
coffees = [“French Roast”,”Columbian”,”Kona”]
VÝ dô 2: T¹o ra mét m¶ng víi 2 phÇn tö ®îc khëi ®Çu vµ mét
phÇn tö rçng:
fish = [“Lion”, ,” Surgeon”]
Víi biÓu thøc nµy, fish[0] lµ “Lion”, fish[2] lµ ” Surgeon”, vµ
fish[2] cha ®îc ®Þnh nghÜa
Chó ý viÖc sö dông to¸n tö this ®Ó g¸n gi¸ trÞ cho c¸c thuéc
tÝnh cña ®èi tîng ph¶i th«ng qua c¸c tham sè cña hµm.
VÝ dô, b¹n cã thÓ t¹o mét ®èi tîng míi kiÓu car nh sau:
mycar = new car(“Eagle”,”Talon TSi”,1993)
C©u lÖnh nµy sÏ t¹o ra ®èi tîng mycar vµ liªn kÕt c¸c gi¸ trÞ ®îc
®a vµo víi c¸c thuéc tÝnh. Khi ®ã gi¸ trÞ cña mycar.make lµ “Eagle”,
gi¸ trÞ cña mycar.model lµ “Talon TSi”, vµ mycar.year lµ mét sè
nguyªn 1993....Cø nh vËy b¹n cã thÓ t¹o ra nhiÒu ®èi tîng kiÓu car.
Mét ®èi tîng còng cã thÓ cã nh÷ng thuéc tÝnh mµ b¶n th©n nã
còng lµ mét ®èi tîng. VÝ dô b¹n ®Þnh nghÜa thªm mét ®èi tîng kh¸c lµ
person nh sau:
function person(name, age, sex){
this.name=name
this.age=age
this.sex=sex
}
Vµ sau ®ã ta t¹o ra hai ngêi míi:
rank = new person(“Rank McKinnon”,33,”M”)
ken = new person(“Ken John”,39,”M”)
B©y giê b¹n ®Þnh nghÜa l¹i hµm x©y dùng car nh sau:
function car(make, model, year,owner ){
this.make = make
this.model = model
this.year = year
this.owner = owner
}
Nh vËy b¹n cã thÓ t¹o ®èi tîng kiÓu car míi:
car1 = new car(“Eagle”,”Talon TSi”,1993,rank)
car2 = new car(“Nissan”,”300ZX”,1992,ken)
Nh vËy, thay v× ph¶i qua mét x©u ký tù hay mét gi¸ trÞ sè khi t¹o ®èi
tîng, ta chØ cÇn ®a hai ®èi tîng ®· ®îc t¹o ë c©u lÖnh trªn vµo dßng
tham sè cña ®èi tîng míi t¹o. Ta còng cã thÓ lÊy ®îc thuéc tÝnh cña
®èi tîng owner bªng c©u lªnh sau:
car2.owner.name
Chó ý rªng b¹n còng cã thÓ t¹o ra mét thuéc tÝnh míi cho ®èi tîng tríc
khi ®Þnh nghÜa nã, vÝ dô:
car1.color=”black”
Nh vËy, thuéc tÝnh color cña ®èi tîng car1 ®îc g¸n lµ “black”. Tuy
nhiªn, nã sÏ kh«ng g©y t¸c ®éng tíi bÊt kú mét ®èi tîng kiÓu car nµo
kh¸c. NÕu muèn thªm thuéc tÝnh cho tÊt c¶ c¸c ®èi tîng th× ph¶i
®Þnh nghÜa l¹i hµm x©y dùng ®èi tîng.
5.1.3.LËp môc lôc cho c¸c thuéc tÝnh cña ®èi tîng
Trong Navigator 2.0, b¹n cã thÓ gäi thuéc tÝnh cña mét ®èi tîng
bªng tªn thuéc tÝnh hoÆc bªng sè thø tù cña nã. Tuy nhiªn tõ Navigator
3.0 trë ®i, nÕu ban ®Çu b¹n ®Þnh nghÜa mét thuéc tÝnh bªng tªn cña
nã, b¹n sÏ lu«n lu«n ph¶i gäi nã bªng tªn, vµ nÕu b¹n ®Þnh nghÜa mét
thuéc tÝnh bªng chØ sè th× b¹n còng lu«n lu«n ph¶i gäi tíi nã bªng chØ
sè.
§iÒu nµy øng dông khi b¹n t¹o mét ®èi tîng víi nh÷ng thuéc tÝnh
cña chóng bªng hµm x©y dùng (nh vÝ dô vÒ kiÓu ®èi tîng car ë phÇn
tríc) vµ khi b¹n ®Þnh nghÜa nh÷ng thuéc tÝnh cña riªng mét ®èi tîng
(nh mycar.color=”red”). V× vËy nÕu b¹n ®Þnh nghÜa c¸c thuéc tÝnh
cña ®èi tîng ngay tõ ®Çu bªng chØ sè nh mycar[5]=”25 mpg”, b¹n cã
thÓ lÇn lît gäi tíi c¸c thuéc tÝnh kh¸c nh mycar[5].
Tuy nhiªn ®iÒu nµy lµ kh«ng ®óng ®èi víi nh÷ng ®èi tîng t¬ng
øng cña HTML nh m¶ng form. B¹n cã thÓ gäi tíi c¸c ®èi tîng trong m¶ng
bëi sè thø tù hoÆc tªn cña chóng. VÝ dô thÎ <FORM> thø hai trong mét
document cã thuéc tÝnh NAME lµ “myform” th× b¹n cã thÓ gäi tíi form
®ã bªng document.form[1] hoÆc document.form[“myForm”] hoÆc
document.myForm
5.1.4.§Þnh nghÜa thªm c¸c thuéc tÝnh cho mét kiÓu ®èi tîng
B¹n cã thÓ thªm thuéc tÝnh cho mét kiÓu ®èi tîng ®· ®îc ®Þnh
nghÜa tríc bªng c¸ch sö dông thuéc tÝnh property. Thuéc tÝnh ®îc
®Þnh nghÜa nµy kh«ng chØ cã t¸c dông ®èi víi mét ®èi tîng mµ cã t¸c
dông ®èi víi tÊt c¶ c¸c ®èi tîng kh¸c cïng kiÓu.VÝ dô sau thùc hiÖn
thªm thuéc tÝnh color cho tÊt c¶ c¸c ®èi tîng kiÓu car, sau ®ã g¾n
mét gi¸ trÞ mµu cho thuéc tÝnh color cña ®èi tîng car1:
car.prototype.color=null
car1.color=”red”
object.methodname(<tham sè>)
B¹n cã thÓ ®Þnh nghÜa c¸ch thøc cho mét kiÓu ®èi tîng bªng
c¸ch ®a c¸ch thøc ®ã vµo trong hµm x©y dùng ®èi tîng. VÝ dô b¹n cã
thÓ ®Þnh nghÜa mét hµm cã thÓ ®Þnh d¹ng vµ hiÓn thÞ c¸c thuéc
tÝnh cña c¸c ®èi tîng kiÓu car ®· x©y dùng ë phÇn tríc:
function displayCar () {
var result = “Abeautiful”+this.year+ “ ”+ this.make + “ ”+
this.model
document.write(result)
}
B¹n cã thÓ thªm c¸ch thøc nµy vµo cho ®èi tîng car bªng c¸ch
thªm dßng lÖnh sau vµo hµm ®Þnh nghÜa ®èi tîng
this.displayCar= displayCar;
Nh vËy cã thÓ ®Þnh nghÜa l¹i ®èi tîng car nh sau:
function car(make, model, year,owner ){
this.make = make
this.model = model
this.year = year
this.owner = owner
this.displayCar= displayCar
}
Sau ®ã, b¹n cã thÓ gäi c¸ch thøc displayCar ®èi víi mçi ®èi tîng:
car1.displayCar()
car2.displayCar()
5.1.6.Sö dông cho c¸c tham chiÕu ®èi tîng (Object References)
JavaScript cã mét tõ kho¸ ®Æc biÖt lµ this mµ b¹n cã thÓ sö
dông nã cïng víi mét c¸ch thøc ®Ó gäi tíi ®èi tîng hiÖn thêi. VÝ dô, gi¶
sö b¹n cã mét hµm validate dïng ®Ó x¸c nhËn gi¸ trÞ thuéc tÝnh cña
mét ®èi tîng nªm trong mét kho¶ng nµo ®ã:
function validate(obj, lowval, hival){
if ( (obj.value<lowdate)||(obj.value>hival) )
alert(“Invalid value!”)
}
Sau ®ã b¹n cã thÓ gäi hµm validate tõ mçi thÎ sù kiÖn
onChange:
<INPUT TYPE=”TEXT” NAME=”AGE” SIZE=3
onChange=”validate(this,18,99)” >
Khi liªn kÕt víi mét thuéc tÝnh form, tõ kho¸ this cã thÓ gäi tíi
form cha cña ®èi tîng hiÖn thêi. Trong vÝ dô sau, myForm cã chøa ®èi
tîng Text vµ mét nót bÊm. Khi ngêi sö dông kÝch vµo nót bÊm, trêng
text sÏ hiÓn thÞ tªn form. ThÎ sù kiÖn onClick cña nót bÊm sö dông
this.form ®Ó gäi tíi form cha lµ myForm.
<FORM NAME=”myForm”>
Form name:<INPUT TYPE=”text” NAME=”text1”
VALUE=”Beluga”>
<P>
<INPUT TYPE=”button” NAME=”button1”
value=”Show Form Name”
onClick=”this.form.text1.value=this.form.name”>
</FORM>
7.Tæng kÕt
Nh vËy, tµi liÖu kh«ng nh÷ng ®· giíi thiªu s¬ qua vÒ JavaScript, mµ nã
cßn lµ s¸ch tham kh¶o hÕt søc h÷u Ých ®Ó ph¸t triÓn øng dông cña
b¹n.
B¹n cã thÓ tham kh¶o toµn diÖn JavaScript trong quyÓn Teach
Yourself JavaScript in 14 Days, hoÆc JavaScript Guide
Do JavaScript lµ ng«n ng÷ cßn míi vµ cã sù thay ®æi nhanh chãng, b¹n
nªn ®Õn víi trang Web cña h·ng Netscape ( http://www.netscape.com )
®Ó cã c¸c th«ng tin míi nhÊt vÒ ng«n ng÷ nµy.