41
www.itsci.mju.ac.th/sayan INTRODUCTION TO JAVASCRIPT SAYAN UNANKARD 2/2559 1

INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

www . i t s c i .m ju . ac . t h / sayan

INTRODUCTION TO JAVASCRIPT

SAYAN UNANKARD2/2559

1

Page 2: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

WHAT IS JAVASCRIPT?

JavaScript เปนภาษาการเขยนโปรแกรมคอมพวเตอรแบบไดนามก มนมน าหนกเบา (lightweight) และ ใชกนมากทสดเปนสวนหนงของหนาเวบ ทมการใชงานทชวยใหสครปตฝงไคลเอนตในการโตตอบกบผใชและทาใหหนาเวบแบบไดนามก อกท งยงสามารถเขยนโปรแกรมทสนบสนนความสามารถในการเขยนโปรแกรมเชงวตถ (object-oriented)

2

Page 3: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ADVANTAGES OF JAVASCRIPT

• Less server interaction: ลดการตดตอเพอใหฝงเซรฟเวอรทางานนอยลง โดยสามารถ validate user input กอนทจะสงไปใหเซรฟเวอรประมวลผลตอไปได

• Immediate feedback to the visitors: ไมจาเปนตองรอใหหนาจอโหลดขอมลใหม ในกรณทผใชลมกรอกขอมลบางสวน

• Increased interactivity: เพมการโตตอบกบผใชมากข น โดยการสราง interfaces ทโตตอบกบผใชเมอผใชมการใชเมาส หรอ คยบอรดทาการใด ๆ เชน นาเมาสไปช ตรงตาแหนงทตองการจะแสดงขอความแนะนา เปนตน

• Richer interfaces: เพมความสามารถของหนาจอ เชน การเพมเครองมอทสามารถลากวาง (drag and drop) หรอ เครองมอเลอนหนาจอ (sliders)

3

Page 4: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

LIMITATIONS OF JAVASCRIPT

ขอจากดของการใช JavaScript คอเราไมสามารถเขยนโปรแกรมไดครอบคลมท งหมดเหมอนโปรแกรมภาษาอน ๆ เนองจาก

• Client-side JavaScript ไมอนญาตใหอานและเขยนไฟลได ดวยเหตผลดานความปลอดภย(security reason)

• JavaScript ไมสนบสนนการทางานสาหรบ networking applications

• JavaScript ไมมความสามารถในการทางาน แบบ multithreading หรอ multiprocessor

• JavaScript เปนเครองมอทใชในการประมวลผลภาษาคอมพวเตอรทใหใชงานรวมกบ static HTML pages เทาน น

4

Page 5: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

SYNTAX

JavaScript สามารถเขยนคาสงอยภายใต HTML tag โดยระบ tag <script>... </script>ซงสามารถแทรกคาสง <script> tags ไดทกทในหนาเวบ แตโดยทวไปจะนยมวางไวภายใน <head> tags

Script tag ประกอบไปดวย 2 attributes ดงน

• Language: เปนสวนของการระบ scripting language ทตองการใชงาน โดยปกตระบเปน javascript

• Type: เปนชนดของภาษา script ในการใชงาน โดยปกตระบเปน "text/javascript"

5

<script language="javascript" type="text/javascript">JavaScript code

</script>

Page 6: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

SYNTAX

Semicolons are Optional

หรอ

6

<script language="javascript" type="text/javascript">var1 = 10var2 = 20

</script>

<script language="javascript" type="text/javascript">var1 = 10; var2 = 20;

</script>

Page 7: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

SYNTAX

Case Sensitivity• JavaScript เปน case-sensitive language ดงน นการประกาศตวแปร ชอฟงกชน และ

อน ๆ ทเกยวของจาเปนตองต งชอใหตรงกน

Comments in JavaScript

7

<script language="javascript" type="text/javascript"><!--

// This is a comment. It is similar to comments in C++

/** This is a multiline comment in JavaScript* It is very similar to comments in C Programming*/

//--></script>

Page 8: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ENABLING

โดยปกต browsers ในปจจบนถกพฒนา built-in ใหสนบสนนการทางานของ JavaScript อยแลว โดยผใชสามารถกาหนดใหเปดการใชงาน (enable) หรอ ไมเปดการใชงาน (disable) ดวยตนเองดงน

JavaScript in Internet Explorer• เลอกเมน Tools -> Internet Options

• เลอก Security tab จาก dialog box

• คลกเลอก Custom Level button

• หาสวนของ Scripting option

• เลอก Enable radio button ภายใตหวขอ

Active scripting

• สดทายกดปม OK เปนอนส นสด

8

Page 9: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ENABLING

JavaScript in Firefox• เปด new tab -> พมพ about: config ใน address bar

• จะปรากฏ warning dialog ใหเลอก I’ll be careful, I promise!

• หา list ของ configure options ใน browser

• ใน search bar, พมพ javascript.enabled

• จะปรากฎ option ในการ enable หรอ disable javascript โดยการ double click

9

Page 10: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ENABLING

JavaScript in Chrome• คลก Chrome menu เลอก Settings

• คลก Show advanced settings

• ภายใต Privacy section คลก Content settings button

• ในสวนของ "Javascript" section ใหเลอก "Do not allow any site to run JavaScript" หรอ "Allow all sites to run JavaScript (recommended)"

10

Page 11: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

FIRST JAVASCRIPT EXAMPLE

11

<html><head>

<script type="text/javascript"><!--

function sayHello() {alert("Hello World")

}//-->

</script>

</head><body>

Click here for the result<input type="button" onclick="sayHello()" value="Say Hello" />

</body></html>

Page 12: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

JAVASCRIPT IN EXTERNAL FILE

สามารถแยกไฟลเขยน JavaScript ไดโดยไมจาเปนตองเขยนในหนา web page

12

<html><head><script type="text/javascript" src="filename.js"></script></head><body>.......</body></html>

Page 13: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

VARIABLES

JavaScript อนญาตใหประกาศตวแปร 3 primitive data types ไดแก• Numbers เชน 123, 120.50

• Strings of text เชน "This text string"

• Boolean เชน true or false

การประกาศตวแปรจะใชคยเวรด var ตามดวยชอตวแปร โดยไมตองระบ type ของตวแปร

13

<script type="text/javascript"><!--

var money;var name = "Sayan";var salary, bonus;

//--></script>

Page 14: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

VARIABLES

JavaScript จดอยในประเภท untyped language หมายถงตวแปรสามารถจดเกบขอมลไดทกชนด โดยทคาของตวแปรแตละชนดสามารถเปลยนแปลงไดตลอดเวลาในขณะประมวลผล โดยไมจาเปนตองแปลงคา JavaScript จะทาหนาทแปลงคาใหโดยอตโนมต

14

Page 15: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

VARIABLES

JavaScript Variable Scope• Global Variables: เปนตวแปรแบบ global scope สามารถใชงานไดทกทใน JavaScript

code

• Local Variables: เปนตวแปรทสามารถมองเหนได เฉพาะใน function เทาน น รวมไปถง parameters ของฟงกชนดวยเชนกน

15

<script type="text/javascript"><!--

var myVar = "global"; // Declare a global variable

function checkscope( ) {var myVar = "local"; // Declare a local variabledocument.write(myVar);}

//--></script>

Page 16: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

VARIABLE

• การต งชอตวแปร หามใช JavaScript reserved keywords เชน break หรอ Boolean

• ชอตวแปรจะตองไมข นตนดวยตวเลข สามารถกาหนดข นตนเปนตวอกษร หรอ underscore ได

• ชอตวแปรเปนแบบ case-sensitive เชน Name และ name ถอวาเปนคนละตวแปร

16

Page 17: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

การสรางฟงกชน

การสรางฟงกชนในจาวาสครปตในหนาจอเจเอสพน น ประกอบดวยคาสงตาง ๆ ภายใตเครองหมายปกกา { } และชอของฟงกชนจะตองไมซ ากนในแตละหนาจอ รปแบบการสรางฟงกชนดงน

function functionName( ) {statement;statement;statement

}

function sayGoodbye() { alert("Goodbye!") //คาสงแสดงกลองขอความ (Messagebox)

}

17

Page 18: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

การสงพารามเตอร

การสงพารามเตอรเขาไปในฟงกชนโดยทไมจาเปนตองระบประเภทของตวแปร มรปแบบการสงดงน function name(parameter_1, parameter_2) {

statement(s);

}

function addVAT(price) { price *= 1.07;alert(price)

}

การเรยกใชฟงกชน

addVAT(5); หรอ var nettPrice = 5;

addVAT(nettPrice);

18

Page 19: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

การคนคาจากฟงกชน

การคนคาจากฟงกชนทาไดโดยการใชคาสง return ซงคลายกบภาษาจาวา แตสวนของการประกาศชอฟงกชนไมจาเปนตองระบประเภทของการคนคา ดงตวอยางตอไปน

ตวอยางการคนคาจากฟงกชน

function addVAT(price) { price *= 1.21; return price

}

การเรยกใชฟงกชนทมการคนคา

var newPrice = addVAT(netPrice);

19

Page 20: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ค าสงในการเปรยบเทยบ

สญลกษณทใชในการเปรยบเทยบมท งหมด 6 รปแบบคอ เทากบ (==) ไมเทากบ (!=) มากกวา (>) นอยกวา (<) มากกวาหรอเทากบ (>=) และ นอยกวาหรอเทากบ (<=) โดยมรปแบบการเปรยบเทยบดงน if (condition) {

statement; statement

};

if (score > 5) {

alert("Congratulations!")

} else { alert("Shame - better luck next time")

};20

Page 21: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ค าสงวนซ า

การทางานแบบวนซ าในจาวาสครปตม 2 รปแบบคอคาสง for และ while ซงมลกษณะการทางานเหมอนกน ตางกนเพยงรปแบบการเขยนโปรแกรมเทาน น ซงรปแบบการทางานของคาสง for จะประกอบดวยขอกาหนด 3 สวนคอ คาเรมตน (initial_value) คาสดทาย (final_value) และ การเพมจานวนรอบ (increment) โดยมรปแบบดงน for (initial_value; final_value; increment) {

statement(s);

}

var sum = 0;

for (x = 0; x <= 5; x++) {

sum = sum + x;

}

21

Page 22: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

WHILE LOOP

คาสง while จะตองกาหนดเงอนไขการออกจากการวนซ า ซงการวนซ าจะหยดการทางานเมอเงอนไขเปนเทจเทาน น โดยมรปแบบการทางานดงน

while (condition) { statement(s);

}

ตวอยางการใชงานค าสง whilevar x = 50;while (x > 0) {

x--;};

22

Page 23: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

การเปรยบเทยบเมอมเงอนไข

การเปรยบเทยบเมอมเงอนไขมากกวา 2 เงอนไขข นไปสามารถใชเครองหมายและ (&&) และ หรอ (||) ในการเปรยบเทยบได เชน

if (x > 0 && x < 100) {

}

if (x == 0 || x == 1) {

}

23

Page 24: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

WINDOW DOCUMENT และ FORM OBJECTS

จาวาสครปตเปนการเขยนโปรแกรมเชงวตถ ซงประกอบดวยคณสมบต (properties) เมธอด (method) และ เหตการณ (event) ซงออปเจคของหนาจอเจเอสพ หรอ เฮชทเอมแอล ประกอบดวยสวนตาง ๆ

24

Page 25: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

วนโดวสออปเจค

window.status = "Hi, there!";

alert(window.location);

alert(window.length);

var parentWindow = window.parent;

alert(parentWindow.length);

var topWindow = window.top;

alert(topWindow.length);

25

Page 26: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

วนโดวสออปเจค

var response = confirm("Delete File?");

var fileName = prompt("Select File", "file.txt");

26

Page 27: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

วนโดวสออปเจค

คาสง submit() เปนคาสงทใหฟอรมตกลงจากไคลเอนต เพอสงขอมลไปยงเซรฟเวอร ซงจะถกเรยกใชพรอม ๆ กบเหตการณ onSubmit เชน <form onSubmit="displayFarewell()">

ตวอยางการใชจาวาสครปตโดยใชฟงกชน confirm()

<script language="JavaScript">function delSubmit() {

if ( confirm("ตองการลบขอมล user แนใจหรอไม ?") ) {document.frm1.submit();

}}

</script><form name="frm1" method="post" action="page2.jsp">

<input type="submit" value="delete" onClick="delSubmit()"> </form>

27

Page 28: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

วนโดวสออปเจค

<a href=" page2.jsp?empid=1" onclick="return confirm('ตองการลบขอมลพนกงาน แนใจหรอไม?')"> ลบ</a>

28

Page 29: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

FORM OBJECT

<script language="JavaScript">function validate(formCheck) {

if (formCheck.fname.value == "") {alert("กรณาระบชอ");formCheck.fname.focus();return false;

}}</script> <body>

<form name="form1" method="post" action="/hello.jsp">Your Name : <input type="text" name="fname"><br> <input type="submit" value="submit" onClick="return validate(form1)"> </form>

</body>

29

Page 30: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

FORM OBJECT

<script language="JavaScript">function validate(formCheck) {

if((formCheck.item[0].checked==0)&&(formCheck.item[1].checked==0)) { alert("กรณาเลอกยนยน");formCheck.item[0].focus();return false;

}if ((formCheck.citems[0].checked == 0) && (formCheck.citems[1].checked == 0) &&

(formCheck.citems[2].checked == 0) && (formCheck.citems[3].checked == 0)) {alert("กรณาเลอก ความถนดอยางนอย 1 ชนด");formCheck.citems[0].focus();return false;

}}</script>

30

Page 31: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

การตรวจสอบรปแบบขอมล (REGULAR EXPRESSION)

ในบางกรณทตองการตรวจสอบความถกตองของรปแบบในการปอนขอมลของผใช วามความถกตองตามรปแบบทเราตองการหรอไม เชน รหสไปรษณย จะตองเปนตวเลขจานวน 5 ตวเทาน น เปนตน

var myRegExp = new RegExp("\d{4}-\d{4}-\d{4}-\d{4}");var result = myRegExp.test(inputString);

หากตองการกาหนดรปแบบมากกวา 1 รปแบบในการตรวจสอบใหใชเครองหมาย | ขนระหวางรปแบบทกาหนด เชน

var myRegExp = new RegExp("\d{16} | \d{4}-\d{4}-\d{4}-\d{4}");

31

Page 32: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

รปแบบ และ สญลกษณพเศษตาง ๆ

\w แทนท งตวอกษรและตวเลข (alphanumerical character)\W แทนทไมใชตวอกษรและตวเลข (non-alphanumerical character)\d แทนตวเลข (numerical character)\D แทนทไมใชตวเลข (non-numerical character)\s แทนทชองวาง เชนตดบรรทด หรอ แทป (whitespace character)\S แทนททไมใชชองวาง (non-whitespace character)[..] ตรงกบตวอกษรในเครองหมาย [ ] เชน [abc][^..] ไมตรงกบตวอกษรในเครองหมาย [ ] เชน [^abc] เปนตวอกษรทไมใช a b c [x-y] ตรงกบตวอกษรทอยในชวงทกาหนด เชน [a-c] เปนตวอกษร a b c เทาน น[^x-y] ไมตรงกบตวอกษรทอยในชวงทกาหนด เชน [^a-c] เปนตวอกษรใด ๆ ทไมใช a b c {x} ตรงกบตวอกษรกอนหนาจานวน x ตว เชน [acb]{2} เปนตวอกษร a b c

จานวน 2 ตวอกษร คอ aa หรอ ab หรอ ac หรอ bb เปนตน32

Page 33: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

รปแบบ และ สญลกษณพเศษตาง ๆ

{x,} ตรงกบตวอกษรกอนหนาอยางนอยจานวน x ตว เชน [acb]{2,} เปน ตวอกษร a b c จานวน 2 ตวอกษรข นไป คอ aa หรอ aab หรอ acbc หรอ bbccaab เปนตน

<script language="javascript">function validate(inputstr) {

var regex=/^[A-Z]\d{4}$/;if (regex.test(inputstr)) {

alert("Matches");return true;

}else{alert("Does not match");return false;

}}

</script>

33

Page 34: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

รปแบบ และ สญลกษณพเศษตาง ๆ

function checkPhone ( field, errorMsg) {phoneRegex = /^\(\d{3]\) \d{3}-\d{4}$/;

if(!field.match( phoneRegex)) {

alert(errorMsg );

field.focus();field.select();return false;

}return true;

}

34

Page 35: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

รปแบบ และ สญลกษณพเศษตาง ๆ

function validateEmail ( emailField, errorMsg ) { emailpat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*

@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;if( !emailpat.test( emailField.value ) ) {

alert( errorMsg);emailField.focus();emailField.select();return false;

}return true;

}

35

Page 36: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

EVENTS

การโตตอบระหวาง JavaScript กบ HTML ถกจดการผาน events ซงเกดข นเมอผใชหรอ browser มการจดการกบ page เชน• onclick

• onsubmit

• onmouseover และ onmouseout

• onkeydown, onkeyup และ onkeypress

36

Page 37: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ONCLICK

การใช event onclick สามารถใชไดกบทกเครองมอบนหนา HTML เชน

<input type="button" onclick="sayHello()" value="Say Hello" />

37

Page 38: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ONSUBMIT

การใช onsubmit จะใชงานรวมกบ form และ input type="submit"

<form method="POST" action="test.htm" onsubmit="return validate()">.......<input type="submit" value="Submit" /></form>

38

Page 39: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ONMOUSEOVER & ONMOUSEOUT

<script type="text/javascript">

function over() {

var cb = document.getElementById('label1');

cb.innerHTML = "Mouse Over";

}

function out() {

var cb = document.getElementById('label1');

cb.innerHTML = "Mouse Out";

}

</script>

39

<body><p>Bring your mouse inside the division to see the result:</p><div onmouseover="over()" onmouseout="out()">

<h2> This is inside the division </h2></div><label id="label1"> </label>

</body>

Page 40: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

ONKEYPRESS

คาสง onKeyPress เปน Event เมอมการกดแปนคยบอรด เปนการรวม Event 2 เหตการณเขาดวยกนคอ KeyDown และ KeyUp ตวอยางเชน

ใหเชควากรอกขอมลเปนตวเลขหรอไม โดยการเทยบกบรหส Ascii code ซง 48 คอ 0 และ 57 คอหมายเลข 9

รหสไปรษณย : <input type="text" name="zipcode" maxlength="5"onKeyPress="return (event.keyCode >= 48 && event.keyCode <= 57);" >

40

Page 41: INTRODUCTION TO SAYAN UNANKARD JAVASCRIPT 2/2559 1 · 2017-09-08 · ค าสั่งในการเปรียบเทียบ สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีทั

EXERCISE

จงเขยน JavaScript ตรวจสอบการกรอกขอมลตอไปน โดยในแตละชองจะตองกรอกขอมลไดต งแต 0 – จานวน % ของแตละสวน เชน Midterm จะกรอกไดเฉพาะ 0 – 30 เทาน น จากน นเมอกรอกขอมลในแตละชองแลวจะตองแสดงจานวนคะแนนรวมใน label total ดวย

41