SlideShare a Scribd company logo
1 of 42
Download to read offline
Bài 6:
Tạo hiệu ứng và validate Form
Giới thiệu về mô hình Document Object Model
Giới thiệu về HTML DOM
Cấu trúc DOM
Thuộc tính của node
Phương thức của node
Truy cập đến node
Thêm node
Xóa node
Truy cập và thay đổi style của các element
Đối phó với các trình duyệt khác nhau
Hệ thống bài cũ
Giới thiệu về mô hình Document Object Model
Giới thiệu về HTML DOM
Cấu trúc DOM
Thuộc tính của node
Phương thức của node
Truy cập đến node
Thêm node
Xóa node
Truy cập và thay đổi style của các element
Đối phó với các trình duyệt khác nhau
Tạo hiệu ứng và validate Form 2
Viết mã tạo các hiệu ứng
Hiệu ứng Image Rollover
Hiệu ứng SlideShow
Thao tác với các điều khiển
SelectBox
CheckBox
RadioButton
Form
Kiểm tra tính hợp lệ cho Form
Mục tiêu bài học
Viết mã tạo các hiệu ứng
Hiệu ứng Image Rollover
Hiệu ứng SlideShow
Thao tác với các điều khiển
SelectBox
CheckBox
RadioButton
Form
Kiểm tra tính hợp lệ cho Form
Tạo hiệu ứng và validate Form 3
CÁC HIỆU ỨNG
Biến và toán tử 4
CÁC HIỆU ỨNG
Image Rollover là hiệu ứng thay đổi ảnh khi di chuột lên
ảnh
Image Rollover
Tạo hiệu ứng và validate Form 5
Ảnh hiện lên khi
chạy ứng dụng
Ảnh hiện lên khi di
chuột lên ảnh
Thực hiện hiệu ứng này bằng cách xử lý sự kiện
onMouseOver và onMouseOut cho thẻ img
onMouseOver: sự kiện được kích hoạt khi người dùng di chuột
lên ảnh
onMouseOut: sự kiện được kích hoạt khi người dùng di chuột ra
ngoài ảnh
Tạo hiệu ứng Rollover
Thực hiện hiệu ứng này bằng cách xử lý sự kiện
onMouseOver và onMouseOut cho thẻ img
onMouseOver: sự kiện được kích hoạt khi người dùng di chuột
lên ảnh
onMouseOut: sự kiện được kích hoạt khi người dùng di chuột ra
ngoài ảnh
Tạo hiệu ứng và validate Form 6
Demo Rollover
<html>
<head>
<script type="text/javascript">
function onMouseOverEvent() {
document.img_hoa.src = "hoaover.jpg";
}
function onMouseOutEvent() {
document.img_hoa.src = "hoaout.jpg";
}
</script>
</head><body>
<img name="img_hoa" src="hoaout.jpg"
onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" />
</body>
</html>
Truy cập đến phần
tử bằng attribute
name
Tạo hiệu ứng và validate Form 7
<html>
<head>
<script type="text/javascript">
function onMouseOverEvent() {
document.img_hoa.src = "hoaover.jpg";
}
function onMouseOutEvent() {
document.img_hoa.src = "hoaout.jpg";
}
</script>
</head><body>
<img name="img_hoa" src="hoaout.jpg"
onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" />
</body>
</html>
Xem Demo/Rollover
Truy cập đến phần
tử bằng attribute
name
Vấn đề: Lần đầu tiền di chuột lên ảnh, sẽ mất một thời gian
ảnh mới được load mặc dù trang web đã được mở ra từ lâu
Nguyên nhân: Khi người dùng di chuột lên, ảnh mới được
load
Giải pháp: Load trước ảnh
Kỹ thuật:
Tạo đối tượng image cho mỗi ảnh muốn load trước
Gán đường dẫn của ảnh cho thuộc tính src của đối tượng ảnh
đó
Giải thích:
Khi gặp lệnh imageObject.src=“link_cua_anh” thì ảnh
được load ngầm bên dưới, máy tính tiếp tục thực hiện các lệnh
sau lệnh này
 Giải pháp này không làm cho việc load trang web chậm đi
Vấn đề nảy sinh khi thực hiện Rollover
Vấn đề: Lần đầu tiền di chuột lên ảnh, sẽ mất một thời gian
ảnh mới được load mặc dù trang web đã được mở ra từ lâu
Nguyên nhân: Khi người dùng di chuột lên, ảnh mới được
load
Giải pháp: Load trước ảnh
Kỹ thuật:
Tạo đối tượng image cho mỗi ảnh muốn load trước
Gán đường dẫn của ảnh cho thuộc tính src của đối tượng ảnh
đó
Giải thích:
Khi gặp lệnh imageObject.src=“link_cua_anh” thì ảnh
được load ngầm bên dưới, máy tính tiếp tục thực hiện các lệnh
sau lệnh này
 Giải pháp này không làm cho việc load trang web chậm đi
Tạo hiệu ứng và validate Form 8
Demo load trước ảnh
<html><head>
<script type="text/javascript">
var hoaover = new Image();
var hoaout = new Image();
function loadAnh() {
hoaover.src = "hoaover.jpg";
hoaout.src = "hoaout.jpg";
}
function onMouseOverEvent() {
document.img_hoa.src = hoaover.src
}
function onMouseOutEvent() {
document.img_hoa.src = hoaout.src
}
</script></head>
<body onload = "loadAnh();">
<img name="img_hoa" src="hoaout.jpg"
onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" />
</body></html>
Tạo hiệu ứng và validate Form 9
<html><head>
<script type="text/javascript">
var hoaover = new Image();
var hoaout = new Image();
function loadAnh() {
hoaover.src = "hoaover.jpg";
hoaout.src = "hoaout.jpg";
}
function onMouseOverEvent() {
document.img_hoa.src = hoaover.src
}
function onMouseOutEvent() {
document.img_hoa.src = hoaout.src
}
</script></head>
<body onload = "loadAnh();">
<img name="img_hoa" src="hoaout.jpg"
onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" />
</body></html> Xem Rollover/preLoad
Slide Show là gì
Là hiệu ứng ảnh được hiện ra thay thế cho ảnh trước đó
Có thể có thanh điều khiển cho người dùng
Slide Show
Slide Show là gì
Là hiệu ứng ảnh được hiện ra thay thế cho ảnh trước đó
Có thể có thanh điều khiển cho người dùng
Tạo hiệu ứng và validate Form 10
Thanh điều khiển
Truy cập trang web http://www.catswhocode.com/blog/top-10-
javascript-slideshows-carousels-and-sliders/ để tham khảo các
slide show làm bằng javascript
Các bước để làm Slide Show
Load trước tất cả các ảnh
Xử lý sự kiện cho button Next
Xử lý sự kiện cho button Back
Các bước làm Slide Show
<body onload = "loadAnh();">
<img id="hoa" src="anh0.jpg" />
<input type="button" value="back" onclick="back();" />
<input type="button" value = "next" onclick="next();"/>
</body>
Tạo hiệu ứng và validate Form 11
<body onload = "loadAnh();">
<img id="hoa" src="anh0.jpg" />
<input type="button" value="back" onclick="back();" />
<input type="button" value = "next" onclick="next();"/>
</body>
Xem SlideShow
Demo làm Slide Show
var anhAr = [];
var currentIndex=0;
function loadAnh() {
for (var i = 0; i < 6; i++) {
anhAr[i] = new Image();
anhAr[i].src = "anh"+i+".jpg";
}
}
function next() {
if (currentIndex < 4) {
currentIndex++;
document.getElementById("hoa").src = anhAr[currentIndex].src;
}
}
function back() {
if (currentIndex > 0) {
currentIndex--;
document.getElementById("hoa").src = anhAr[currentIndex].src;
}
}
Tạo hiệu ứng và validate Form 12
var anhAr = [];
var currentIndex=0;
function loadAnh() {
for (var i = 0; i < 6; i++) {
anhAr[i] = new Image();
anhAr[i].src = "anh"+i+".jpg";
}
}
function next() {
if (currentIndex < 4) {
currentIndex++;
document.getElementById("hoa").src = anhAr[currentIndex].src;
}
}
function back() {
if (currentIndex > 0) {
currentIndex--;
document.getElementById("hoa").src = anhAr[currentIndex].src;
}
}
Kết quả Demo
Ảnh được thay
đổi sau khi nhấn
Next
Tạo hiệu ứng và validate Form 13
Bản đồ ảnh là ảnh có những vùng cụ thể được định nghĩa để
thực hiện một hành động nào đó khi người dùng tác động lên
Cho người dùng chọn khu vực (đất nước) mà người truy cập cư trú
Sử dụng như menu cho người dùng chọn mặt hàng cần mua
Bản đồ ảnh
Tạo hiệu ứng và validate Form 14
Xem World Map
HTML cung cấp thẻ map để tạo bản đồ ảnh
Thẻ map đi liền sau thẻ img, thuộc tính usemap của thẻ
img có giá trị bằng giá trị thuộc tính name của thẻ map
tương ứng
Thẻ area trong thẻ map để chỉ ra các vùng trên bản đồ.
Vùng trên bản đồ được chỉ ra bằng thuộc tính coords
Bản đồ ảnh
Tạo hiệu ứng và validate Form 15
Bản đồ ảnh
<img width="1000" src="bando.jpg" usemap="#bando" id="bando" /></p>
<map name="bando">
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chaumy.jpg'"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chauphi.jpg'"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chauau.jpg'"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chaua.jpg';"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chauuc.jpg';" />
</map>
Thuộc tính usemap của ảnh có giá trị
bằng giá trị của thuộc tính name của thẻ
map
Tạo hiệu ứng và validate Form 16
<img width="1000" src="bando.jpg" usemap="#bando" id="bando" /></p>
<map name="bando">
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chaumy.jpg'"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chauphi.jpg'"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chauau.jpg'"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chaua.jpg';"/>
<area shape="poly" coords="" href="#"
onmouseover="document.getElementById('bando').src='bando.chauuc.jpg';" />
</map>
CÁC ĐIỀU KHIỂN
Biến và toán tử 17
CÁC ĐIỀU KHIỂN
Javascript cung cấp các điều khiển để tương tác với người
dùng
Select Box
CheckBox
Radio Button
Form
Các điều khiển
Tạo hiệu ứng và validate Form 18
Một số element được định nghĩa thêm thuộc tính name (ví dụ
như các điều khiển checkbox, radio button…)
Có thể sử dụng attribute name để truy cập đến một nhóm
các element có cùng giá trị attribute name
Phân biệt id và name
id là duy nhất, mỗi id đại diện cho 1 element
Nhiều phần tử có cùng giá trị của attribute name, mỗi giá trị
name đại diện cho một nhóm các phần tử
Sử dụng phương thức getElementsByName(name) để lấy về
một mảng các element có cùng thuộc tính name
Attribute name
Một số element được định nghĩa thêm thuộc tính name (ví dụ
như các điều khiển checkbox, radio button…)
Có thể sử dụng attribute name để truy cập đến một nhóm
các element có cùng giá trị attribute name
Phân biệt id và name
id là duy nhất, mỗi id đại diện cho 1 element
Nhiều phần tử có cùng giá trị của attribute name, mỗi giá trị
name đại diện cho một nhóm các phần tử
Sử dụng phương thức getElementsByName(name) để lấy về
một mảng các element có cùng thuộc tính name
Tạo hiệu ứng và validate Form 19
Demo sử dụng attribute name
để truy cập đến một nhóm các phần tử
<html>
<body >
<input type="checkbox" name="test" value="how"/>
<input type="checkbox" name="test" value="are"/>
<input type="checkbox" name="test" value="you"/>
<input type="checkbox" name="test" value="?"/>
<script type="text/javascript">
var ckAr = document.getElementsByName("test");
var str = "";
for (var i = 0; i < ckAr.length; i++) {
str = str + " "+ ckAr[i].value
}
alert(str);
</script>
</body>
</html>
Tạo hiệu ứng và validate Form 20
<html>
<body >
<input type="checkbox" name="test" value="how"/>
<input type="checkbox" name="test" value="are"/>
<input type="checkbox" name="test" value="you"/>
<input type="checkbox" name="test" value="?"/>
<script type="text/javascript">
var ckAr = document.getElementsByName("test");
var str = "";
for (var i = 0; i < ckAr.length; i++) {
str = str + " "+ ckAr[i].value
}
alert(str);
</script>
</body>
</html>
Select Box
Trên FireFox, truy cập đến giá trị được chọn của Select
Box bằng thuộc tính value
Trên FireFox cũng có thể thiết lập giá trị được chọn cho
Select box bằng JavaScript
Select Box
<select id="country">
<option selected="selected">Viet Nam</option>
<option value="Anh">Anh</option>
<option value="My">My</option>
</select>>
Select Box
Trên FireFox, truy cập đến giá trị được chọn của Select
Box bằng thuộc tính value
Trên FireFox cũng có thể thiết lập giá trị được chọn cho
Select box bằng JavaScript
Tạo hiệu ứng và validate Form 21
document.getElementById("country").value
document.getElementById("country").value = "Mỹ"
Bài toán
Khi nhấn vào button Chọn Quốc Gia sẽ hiển thị nước được
chọn
Demo sử dụng Select Box
Tạo hiệu ứng và validate Form 22
Xem Dieu khienSelectBox
Demo sử dụng Select Box
<html ><head>
<script type="text/javascript">
function chonQuocGiaClick(){
var name = document.getElementById("country").value;
alert(name);
}
</script>
</head>
<body>
<select id="country">
<option selected="selected">Viet Nam</option>
<option value="Anh">Anh</option>
<option value="My">My</option>
</select>
<input type ="button" value="Chọn Quốc Gia" onclick="chonQuocGiaClick()" />
</body></html>
Tạo hiệu ứng và validate Form 23
<html ><head>
<script type="text/javascript">
function chonQuocGiaClick(){
var name = document.getElementById("country").value;
alert(name);
}
</script>
</head>
<body>
<select id="country">
<option selected="selected">Viet Nam</option>
<option value="Anh">Anh</option>
<option value="My">My</option>
</select>
<input type ="button" value="Chọn Quốc Gia" onclick="chonQuocGiaClick()" />
</body></html>
Bài toán
Demo thiết lập giá trị cho Select Box
<body>
<p><input type="button" value="Chau A" onclick= "chauAClick();" />
<input type="button" value="Chau Au" onclick="chauAuClick();"/>
<input type="button" value="Chau My" onclick="chauMy();" /> </p>
<p><select id="country">
<option selected="selected">Viet Nam</option>
<option value="Anh">Anh</option>
<option value="My">My</option>
</select></p>
</body>
Tạo hiệu ứng và validate Form 24
<body>
<p><input type="button" value="Chau A" onclick= "chauAClick();" />
<input type="button" value="Chau Au" onclick="chauAuClick();"/>
<input type="button" value="Chau My" onclick="chauMy();" /> </p>
<p><select id="country">
<option selected="selected">Viet Nam</option>
<option value="Anh">Anh</option>
<option value="My">My</option>
</select></p>
</body>
Click vào
Chau Au
Click vào
Chau My
Xem Dieu khienSelect box
Demo thiết lập giá trị cho Select Box
<script type="text/javascript">
function chauAClick() {
document.getElementById("country").value = "Viet Nam";
}
function chauAuClick() {
document.getElementById("country").value = "Anh";
}
function chauMy() {
document.getElementById("country").value = "My";
}
</script>
Tạo hiệu ứng và validate Form 25
<script type="text/javascript">
function chauAClick() {
document.getElementById("country").value = "Viet Nam";
}
function chauAuClick() {
document.getElementById("country").value = "Anh";
}
function chauMy() {
document.getElementById("country").value = "My";
}
</script>
Dùng để người dùng lựa chọn
CheckBox có hai trạng thái là được chọn và không được
chọn
Trong JavaScript, sử dụng thuộc tính checked của CheckBox
để xác định và thiết lập trạng thái cho CheckBox
Giá trị checked = true: CheckBox được chọn
Giá trị checked = false: CheckBox không được chọn
CheckBox
<input type="checkbox" value ="Kem que"
name="ckKem" checked="checked" />
Dùng để người dùng lựa chọn
CheckBox có hai trạng thái là được chọn và không được
chọn
Trong JavaScript, sử dụng thuộc tính checked của CheckBox
để xác định và thiết lập trạng thái cho CheckBox
Giá trị checked = true: CheckBox được chọn
Giá trị checked = false: CheckBox không được chọn
Tạo hiệu ứng và validate Form 26
BTVN:
Tìm cách thiết lập và truy cập giá trị được chọn của CheckBox
trên IE
Viết lại 2 ví dụ trên để có thể chạy trên cả IE và FireFox
CheckBox
Tạo hiệu ứng và validate Form 27
<html >
<body>
Cac loai kem trong cua hang:<br />
<input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br />
<input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br />
<input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br />
<input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br />
<input type="button" onclick="chonKem();" value="Chon kem" />
<p id="pKemDaChon"></p>
</body></html>
Demo sử dụng CheckBox
<html >
<body>
Cac loai kem trong cua hang:<br />
<input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br />
<input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br />
<input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br />
<input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br />
<input type="button" onclick="chonKem();" value="Chon kem" />
<p id="pKemDaChon"></p>
</body></html>
Tạo hiệu ứng và validate Form 28
Ứng dụng liệt kê
những loại kem
được chọn
Xem Dieu khienCheckbox
Demo sử dụng CheckBox
<html ><head>
<script type="text/javascript">
function chonKem() {
var str = "Nhung loai kem ban da chon la:<br/>";
var kemAr = document.getElementsByName("ckKem");
for (var i = 0; i < kemAr.length; i++) {
if (kemAr[i].checked) {
str= str + kemAr[i].value +"<br/>"
}
}
document.getElementById("pKemDaChon").innerHTML = str;
}
</script>
</head><body>
Cac loai kem trong cua hang:<br />
<input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br />
<input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br />
<input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br />
<input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br />
<input type="button" onclick="chonKem();" value="Chon kem" />
<p id="pKemDaChon"></p></body></html>
Tạo hiệu ứng và validate Form 29
<html ><head>
<script type="text/javascript">
function chonKem() {
var str = "Nhung loai kem ban da chon la:<br/>";
var kemAr = document.getElementsByName("ckKem");
for (var i = 0; i < kemAr.length; i++) {
if (kemAr[i].checked) {
str= str + kemAr[i].value +"<br/>"
}
}
document.getElementById("pKemDaChon").innerHTML = str;
}
</script>
</head><body>
Cac loai kem trong cua hang:<br />
<input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br />
<input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br />
<input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br />
<input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br />
<input type="button" onclick="chonKem();" value="Chon kem" />
<p id="pKemDaChon"></p></body></html>
Dùng để người dùng lựa chọn
CheckBox có hai trạng thái là được chọn và không được
chọn
Thường được sử dụng theo nhóm, trong nhóm chỉ một Radio
được chọn
Các radio có cùng tên thuộc cùng một nhóm
Radio Button
<input type="radio" value="Lon" name="rdSize" checked=checked/>Lon<br />
<input type="radio" value="Vua" name="rdSize" />Vua<br />
<input type="radio" value="Nho" name="rdSize" />Nho<br />
Dùng để người dùng lựa chọn
CheckBox có hai trạng thái là được chọn và không được
chọn
Thường được sử dụng theo nhóm, trong nhóm chỉ một Radio
được chọn
Các radio có cùng tên thuộc cùng một nhóm
Tạo hiệu ứng và validate Form 30
<input type="radio" value="Lon" name="rdSize" checked=checked/>Lon<br />
<input type="radio" value="Vua" name="rdSize" />Vua<br />
<input type="radio" value="Nho" name="rdSize" />Nho<br />
Demo sử dụng Radio Button
Tạo hiệu ứng và validate Form 31
Hiển thị loại kem
được chọn
Xem Dieu khienRadio Button
Demo sử dụng Radio Button
var size="";
var sizeAr = document.getElementsByName("rdSize");
for (var i = 0; i < sizeAr.length; i++) {
if (sizeAr[i].checked) {
size = sizeAr[i].value;
}
}
str = str + "Kich thuoc ban da chon la: " + size;
Tạo hiệu ứng và validate Form 32
var size="";
var sizeAr = document.getElementsByName("rdSize");
for (var i = 0; i < sizeAr.length; i++) {
if (sizeAr[i].checked) {
size = sizeAr[i].value;
}
}
str = str + "Kich thuoc ban da chon la: " + size;
FORM &
KIỂM TRA HỢP LỆ CHO FORM
Biến và toán tử 33
FORM &
KIỂM TRA HỢP LỆ CHO FORM
Dùng để gửi dữ liệu lên server
Khi người dùng nhấn vào Button Submit thì dữ liệu sẽ được
đóng gói và gửi lên Server
Form sử dụng phương thức GET hoặc POST để gửi dữ liệu
lên Server
Form
First Name: Phạm
Last Name: Thanh
…..
Tạo hiệu ứng và validate Form 34
First Name: Phạm
Last Name: Thanh
…..
Kiểm tra tính hợp lệ là
Kiểm tra xem thông tin cần thiết đã được điền vào form chưa?
VÀ Thông tin điền vào có đúng yêu cầu hay không?
Validate form rất cần thiết để đảm bảo tính đúng đắn của csdl
Kiểm tra tính hợp lệ của Form
Tạo hiệu ứng và validate Form 35
Thông báo lỗi
Trước đây việc kiểm tra hợp lệ được thực hiện trên server
(server-side valiation)
Javascript ra đời, thực hiện kiểm tra hợp lệ trên browser
(client-side validation) trước khi gửi dữ liệu lên server
Với một số lượng lớn người truy cập, kiểm tra hợp lệ trên
brower sẽ giảm tải cho server
Chú ý: Vẫn phải kiểm tra hợp lệ trên server vì người dùng có
thể disable javascript
Kiểm tra tính hợp lệ của Form
Trước đây việc kiểm tra hợp lệ được thực hiện trên server
(server-side valiation)
Javascript ra đời, thực hiện kiểm tra hợp lệ trên browser
(client-side validation) trước khi gửi dữ liệu lên server
Với một số lượng lớn người truy cập, kiểm tra hợp lệ trên
brower sẽ giảm tải cho server
Chú ý: Vẫn phải kiểm tra hợp lệ trên server vì người dùng có
thể disable javascript
Tạo hiệu ứng và validate Form 36
Mỗi Form có một hoặc nhiều button Submit
Sự kiện onSubmit của form
Được kích hoạt khi người dùng nhấn vào button Submit
Nếu onSubmit có giá trị trả về là True, dữ liệu được gửi lên
Server
Nếu onSubmit có giá trị trả về là False, dữ liệu không được
gửi lên Server
Sự kiện onSubmit của Form
Mỗi Form có một hoặc nhiều button Submit
Sự kiện onSubmit của form
Được kích hoạt khi người dùng nhấn vào button Submit
Nếu onSubmit có giá trị trả về là True, dữ liệu được gửi lên
Server
Nếu onSubmit có giá trị trả về là False, dữ liệu không được
gửi lên Server
Tạo hiệu ứng và validate Form 37
Viết hàm thực hiện việc validate
Nếu thông tin không hợp lệ, trả về giá trị False
Nếu thông tin hợp lệ, trả về True
Hàm này sẽ được dùng xử lý sự kiện cho onSubmit cho Form
Thực hiện kiểm tra hợp lệ
Viết hàm thực hiện việc validate
Nếu thông tin không hợp lệ, trả về giá trị False
Nếu thông tin hợp lệ, trả về True
Hàm này sẽ được dùng xử lý sự kiện cho onSubmit cho Form
Tạo hiệu ứng và validate Form 38
Khi nhấn vào button Submit, form sẽ được validate
Nếu tên chưa được nhập, sẽ hiển thị thông báo lỗi
Nếu tên được nhập, hiển thị lời chào
Demo validate form
<html><body>
<form action="#" onsubmit="return validateForm()" >
<p>Name: <input type = "text" name="txtName" /></p>
<p><input type="submit" value="Submit“ /></p>
</form>
</body></html>
Tạo hiệu ứng và validate Form 39
<html><body>
<form action="#" onsubmit="return validateForm()" >
<p>Name: <input type = "text" name="txtName" /></p>
<p><input type="submit" value="Submit“ /></p>
</form>
</body></html>
Xem Dieu khienForm
Demo kiểm tra hợp lệ cho Form
<html><head>
<script type="text/javascript">
function validateForm() {
var name = document.forms[0].txtName.value;
if (name == "") {
alert("Hay nhap ten vao!");
return false;
}
else {
alert("Hi " + name +" !" );
return true;
}
}
</script></head>
<body>
<form action="#" onsubmit="return validateForm()" >
<p>Name: <input type = "text" name="txtName" /></p>
<p><input type="submit" value="Submit“ /></p>
</form></body></html>
Trả về False nếu dữ
liệu không hợp lệ
Tạo hiệu ứng và validate Form 40
<html><head>
<script type="text/javascript">
function validateForm() {
var name = document.forms[0].txtName.value;
if (name == "") {
alert("Hay nhap ten vao!");
return false;
}
else {
alert("Hi " + name +" !" );
return true;
}
}
</script></head>
<body>
<form action="#" onsubmit="return validateForm()" >
<p>Name: <input type = "text" name="txtName" /></p>
<p><input type="submit" value="Submit“ /></p>
</form></body></html>
Xử lý sự kiện
onSubmit cho Form
Trả về True nếu dữ
liệu hợp lệ
Có thể truy cập đến Form bằng các cách sau
Chỉ số của Form: Document.Forms[0]
Tên Form: Document.Forms[“TenForm”]
Chỉ số ID của Form: Document.Forms[“id”]
Các cách khác để truy cập Form
Tạo hiệu ứng và validate Form 41
Có thể dùng JavaScript để tạo các hiệu ứng như Rollover,
Slide Show
Khi tạo hiệu ứng Rollover, khi di chuột lên ảnh, ảnh mới
được load. Cho nên, nên load trước ảnh
JavaScript cung cấp các phương thức và thuộc tính để thao
tác với các điều khiển như SelectBox, CheckBox, Radio
Button và Form
Radio Button thường được sử dụng theo nhóm. Mỗi nhóm chỉ
có một Radio được chọn. Những Radio nào cùng attribute
name được xem là cùng một nhóm
Mỗi Form có một button có type submit. Khi button này
được nhấn, sẽ kích hoạt sự kiện onSubmit của Form
Nếu xử lý sự kiện onSubmit trả về True, dữ liệu được gửi
đi. Nếu trả về False, dữ liệu không được gửi đi
Tổng kết bài học
Có thể dùng JavaScript để tạo các hiệu ứng như Rollover,
Slide Show
Khi tạo hiệu ứng Rollover, khi di chuột lên ảnh, ảnh mới
được load. Cho nên, nên load trước ảnh
JavaScript cung cấp các phương thức và thuộc tính để thao
tác với các điều khiển như SelectBox, CheckBox, Radio
Button và Form
Radio Button thường được sử dụng theo nhóm. Mỗi nhóm chỉ
có một Radio được chọn. Những Radio nào cùng attribute
name được xem là cùng một nhóm
Mỗi Form có một button có type submit. Khi button này
được nhấn, sẽ kích hoạt sự kiện onSubmit của Form
Nếu xử lý sự kiện onSubmit trả về True, dữ liệu được gửi
đi. Nếu trả về False, dữ liệu không được gửi đi
Tạo hiệu ứng và validate Form 42

More Related Content

What's hot

BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTMasterCode.vn
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016viethoang89
 
BÀI 5 Làm việc với CSS3 - Giáo trình FPT
BÀI 5 Làm việc với CSS3 - Giáo trình FPTBÀI 5 Làm việc với CSS3 - Giáo trình FPT
BÀI 5 Làm việc với CSS3 - Giáo trình FPTMasterCode.vn
 
BÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPT
BÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPTBÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPT
BÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPTMasterCode.vn
 
Slide4 - Co ban HTML5
Slide4 - Co ban HTML5Slide4 - Co ban HTML5
Slide4 - Co ban HTML5Đặng Til
 
Tu hoc javascript
Tu hoc javascriptTu hoc javascript
Tu hoc javascriptzingoncmu2
 
Slide1 - Co ban HTML5
Slide1 - Co ban HTML5Slide1 - Co ban HTML5
Slide1 - Co ban HTML5Đặng Til
 
Power your web skills
Power your web skillsPower your web skills
Power your web skillsDang Tuan
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developerAiTi Education
 
Slide6 - Co ban HTML5
Slide6 - Co ban HTML5Slide6 - Co ban HTML5
Slide6 - Co ban HTML5Đặng Til
 
Bai tap thuc hanh javascript
Bai tap thuc hanh javascriptBai tap thuc hanh javascript
Bai tap thuc hanh javascriptnkquank7d
 
Hoc Jquery Trong 1h
Hoc Jquery Trong 1hHoc Jquery Trong 1h
Hoc Jquery Trong 1hDang Tuan
 
Bai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh JavascriptBai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh JavascriptSamQuiDaiBo
 
Slide5 - Co ban HTML5
Slide5 - Co ban HTML5Slide5 - Co ban HTML5
Slide5 - Co ban HTML5Đặng Til
 

What's hot (20)

BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPTBÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
BÀI 1 Những khái niệm đầu tiên về HTML5 - Giáo trình FPT
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016
 
BÀI 5 Làm việc với CSS3 - Giáo trình FPT
BÀI 5 Làm việc với CSS3 - Giáo trình FPTBÀI 5 Làm việc với CSS3 - Giáo trình FPT
BÀI 5 Làm việc với CSS3 - Giáo trình FPT
 
Tài liệu HTML5-CSS3
Tài liệu HTML5-CSS3Tài liệu HTML5-CSS3
Tài liệu HTML5-CSS3
 
Javascript and dom_html
Javascript and dom_htmlJavascript and dom_html
Javascript and dom_html
 
BÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPT
BÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPTBÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPT
BÀI 6 Làm việc với thành phần mở rộng của CSS3 - Giáo trình FPT
 
Slide4 - Co ban HTML5
Slide4 - Co ban HTML5Slide4 - Co ban HTML5
Slide4 - Co ban HTML5
 
Tu hoc javascript
Tu hoc javascriptTu hoc javascript
Tu hoc javascript
 
Slide1 - Co ban HTML5
Slide1 - Co ban HTML5Slide1 - Co ban HTML5
Slide1 - Co ban HTML5
 
Vue.js
Vue.jsVue.js
Vue.js
 
Power your web skills
Power your web skillsPower your web skills
Power your web skills
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
Bài tập javascript
Bài tập javascriptBài tập javascript
Bài tập javascript
 
Slide6 - Co ban HTML5
Slide6 - Co ban HTML5Slide6 - Co ban HTML5
Slide6 - Co ban HTML5
 
Bai tap thuc hanh javascript
Bai tap thuc hanh javascriptBai tap thuc hanh javascript
Bai tap thuc hanh javascript
 
Kiem tra javascript
Kiem tra javascriptKiem tra javascript
Kiem tra javascript
 
Hoc Jquery Trong 1h
Hoc Jquery Trong 1hHoc Jquery Trong 1h
Hoc Jquery Trong 1h
 
Bai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh JavascriptBai Tap Thuc Hanh Javascript
Bai Tap Thuc Hanh Javascript
 
Slide5 - Co ban HTML5
Slide5 - Co ban HTML5Slide5 - Co ban HTML5
Slide5 - Co ban HTML5
 
Tim+hieu+jquery
Tim+hieu+jqueryTim+hieu+jquery
Tim+hieu+jquery
 

Viewers also liked

Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...
BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...
BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...MasterCode.vn
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...MasterCode.vn
 
Bài 7 Xây dựng website - Giáo trình FPT
Bài 7 Xây dựng website - Giáo trình FPTBài 7 Xây dựng website - Giáo trình FPT
Bài 7 Xây dựng website - Giáo trình FPTMasterCode.vn
 
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTBÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTMasterCode.vn
 
Bài 5 Bố cục trang cơ bản - Giáo trình FPT
Bài 5 Bố cục trang cơ bản - Giáo trình FPTBài 5 Bố cục trang cơ bản - Giáo trình FPT
Bài 5 Bố cục trang cơ bản - Giáo trình FPTMasterCode.vn
 
Bài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPTBài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPTMasterCode.vn
 
Bài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPT
Bài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPTBài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPT
Bài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPTMasterCode.vn
 
BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...
BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...
BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...MasterCode.vn
 
Bài 3 Tạo style cho font và văn bản - Giáo trình FPT
Bài 3 Tạo style cho font và văn bản - Giáo trình FPTBài 3 Tạo style cho font và văn bản - Giáo trình FPT
Bài 3 Tạo style cho font và văn bản - Giáo trình FPTMasterCode.vn
 
Bài 10: Giới thiệu về Server Core - Giáo trình FPT
Bài 10: Giới thiệu về Server Core - Giáo trình FPTBài 10: Giới thiệu về Server Core - Giáo trình FPT
Bài 10: Giới thiệu về Server Core - Giáo trình FPTMasterCode.vn
 
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPTBài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPTMasterCode.vn
 
Bài 6 Thiết kế các thành phần giao diện - Giáo trình FPT
Bài 6 Thiết kế các thành phần giao diện - Giáo trình FPTBài 6 Thiết kế các thành phần giao diện - Giáo trình FPT
Bài 6 Thiết kế các thành phần giao diện - Giáo trình FPTMasterCode.vn
 
Bài 2 Cài Đặt Joomla
Bài 2 Cài Đặt JoomlaBài 2 Cài Đặt Joomla
Bài 2 Cài Đặt JoomlaMasterCode.vn
 
Bài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPT
Bài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPTBài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPT
Bài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPTMasterCode.vn
 
Bài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPT
Bài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPTBài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPT
Bài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPTMasterCode.vn
 
BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...
BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...
BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...MasterCode.vn
 
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...MasterCode.vn
 
Bài 14: Quản trị File và Print Server - Giáo trình FPT
Bài 14: Quản trị File và Print Server - Giáo trình FPTBài 14: Quản trị File và Print Server - Giáo trình FPT
Bài 14: Quản trị File và Print Server - Giáo trình FPTMasterCode.vn
 
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...MasterCode.vn
 

Viewers also liked (20)

Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...
BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...
BÀI 4 Nâng cao khả năng thiết kế web mobile với thành phần jquery mobile - Gi...
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
 
Bài 7 Xây dựng website - Giáo trình FPT
Bài 7 Xây dựng website - Giáo trình FPTBài 7 Xây dựng website - Giáo trình FPT
Bài 7 Xây dựng website - Giáo trình FPT
 
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPTBÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
BÀI 3 Thiết kế web cho di động với dreamweaver CS5 & Jquery - Giáo trình FPT
 
Bài 5 Bố cục trang cơ bản - Giáo trình FPT
Bài 5 Bố cục trang cơ bản - Giáo trình FPTBài 5 Bố cục trang cơ bản - Giáo trình FPT
Bài 5 Bố cục trang cơ bản - Giáo trình FPT
 
Bài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPTBài 4 Định vị trí box - Giáo trình FPT
Bài 4 Định vị trí box - Giáo trình FPT
 
Bài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPT
Bài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPTBài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPT
Bài 13: Nâng cấp từ Windows Server 2003 lên Windows Server 2008 - Giáo trình FPT
 
BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...
BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...
BÀI 2 Tìm hiểu ngôn ngữ đánh dấu trong việc phát triển web mobile - Giáo trìn...
 
Bài 3 Tạo style cho font và văn bản - Giáo trình FPT
Bài 3 Tạo style cho font và văn bản - Giáo trình FPTBài 3 Tạo style cho font và văn bản - Giáo trình FPT
Bài 3 Tạo style cho font và văn bản - Giáo trình FPT
 
Bài 10: Giới thiệu về Server Core - Giáo trình FPT
Bài 10: Giới thiệu về Server Core - Giáo trình FPTBài 10: Giới thiệu về Server Core - Giáo trình FPT
Bài 10: Giới thiệu về Server Core - Giáo trình FPT
 
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPTBài 2 Cơ chế làm việc của CSS - Giáo trình FPT
Bài 2 Cơ chế làm việc của CSS - Giáo trình FPT
 
Bài 6 Thiết kế các thành phần giao diện - Giáo trình FPT
Bài 6 Thiết kế các thành phần giao diện - Giáo trình FPTBài 6 Thiết kế các thành phần giao diện - Giáo trình FPT
Bài 6 Thiết kế các thành phần giao diện - Giáo trình FPT
 
Bài 2 Cài Đặt Joomla
Bài 2 Cài Đặt JoomlaBài 2 Cài Đặt Joomla
Bài 2 Cài Đặt Joomla
 
Bài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPT
Bài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPTBài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPT
Bài 1 XHTML: Cấu trúc nội dung web - Giáo trình FPT
 
Bài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPT
Bài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPTBài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPT
Bài 3: Làm việc với kiểu dữ liệu và mã kịch bản - Giáo trình FPT
 
BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...
BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...
BÀI 5 Làm việc với FONT, TYPEFACE và tỷ lệ nhịp điệu trong TYPOGRAPHY - Giáo ...
 
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
Bài 7: Lập trình với CSDL – Sử dụng DESIGNER & Triển khai ứng dụng - Lập trìn...
 
Bài 14: Quản trị File và Print Server - Giáo trình FPT
Bài 14: Quản trị File và Print Server - Giáo trình FPTBài 14: Quản trị File và Print Server - Giáo trình FPT
Bài 14: Quản trị File và Print Server - Giáo trình FPT
 
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
BÀI 5 Tạo app cho thiết bị di động & một số cải tiến cho web di động - Giáo t...
 

Similar to Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT

Session 08 Final
Session 08 FinalSession 08 Final
Session 08 FinalSamQuiDaiBo
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionMasterCode.vn
 
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9KhanhPham
 
Chapter 3 - Introduction to Javascript (1).pdf
Chapter 3 - Introduction to Javascript (1).pdfChapter 3 - Introduction to Javascript (1).pdf
Chapter 3 - Introduction to Javascript (1).pdfLPhct2
 
Shopping Cart Example (HTML + Javascript)
Shopping Cart Example (HTML + Javascript)Shopping Cart Example (HTML + Javascript)
Shopping Cart Example (HTML + Javascript)Ngô Thanh Tùng
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaANHMATTROI
 
Baocao nguyenanhcuong
Baocao nguyenanhcuongBaocao nguyenanhcuong
Baocao nguyenanhcuongCuong Nguyen
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developerDang Tuan
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-zManhh Nguyễn
 
Tu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quocTu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quochazzaz
 

Similar to Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT (20)

Jquery
JqueryJquery
Jquery
 
Session 08 Final
Session 08 FinalSession 08 Final
Session 08 Final
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
Lab04 mapview
Lab04 mapviewLab04 mapview
Lab04 mapview
 
Bài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng ExtensionBài 5 Hướng dẫn xây dựng Extension
Bài 5 Hướng dẫn xây dựng Extension
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Mvc Model
Mvc ModelMvc Model
Mvc Model
 
Ung dung web chuong 5
Ung dung web  chuong 5Ung dung web  chuong 5
Ung dung web chuong 5
 
Yii
YiiYii
Yii
 
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9Zend Framework 2.0:  Upload file và Multi upload files trong ZF2 - Bài 9
Zend Framework 2.0: Upload file và Multi upload files trong ZF2 - Bài 9
 
Chapter 3 - Introduction to Javascript (1).pdf
Chapter 3 - Introduction to Javascript (1).pdfChapter 3 - Introduction to Javascript (1).pdf
Chapter 3 - Introduction to Javascript (1).pdf
 
Shopping Cart Example (HTML + Javascript)
Shopping Cart Example (HTML + Javascript)Shopping Cart Example (HTML + Javascript)
Shopping Cart Example (HTML + Javascript)
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Baocao nguyenanhcuong
Baocao nguyenanhcuongBaocao nguyenanhcuong
Baocao nguyenanhcuong
 
Aspnet 3.5 _05
Aspnet 3.5 _05Aspnet 3.5 _05
Aspnet 3.5 _05
 
C5. Model, DataSharing.pdf
C5. Model, DataSharing.pdfC5. Model, DataSharing.pdf
C5. Model, DataSharing.pdf
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 
Javascript tong-hop a-z
Javascript tong-hop a-zJavascript tong-hop a-z
Javascript tong-hop a-z
 
Flutter vs React Native 2018
Flutter vs React Native 2018Flutter vs React Native 2018
Flutter vs React Native 2018
 
Tu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quocTu dong dat hang tu he thong ban le lon nhat trung quoc
Tu dong dat hang tu he thong ban le lon nhat trung quoc
 

More from MasterCode.vn

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnMasterCode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnMasterCode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnMasterCode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnMasterCode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnMasterCode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnMasterCode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnMasterCode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnMasterCode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnMasterCode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnMasterCode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnMasterCode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vnMasterCode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...MasterCode.vn
 

More from MasterCode.vn (20)

Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vnPd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
Pd ftai lieu-tieng-anh-cho-nguoi-moi-bat-dau-mastercode.vn
 
Why apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vnWhy apps-succeed-wpr-mastercode.vn
Why apps-succeed-wpr-mastercode.vn
 
Dzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vnDzone performancemonitoring2016-mastercode.vn
Dzone performancemonitoring2016-mastercode.vn
 
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vnGoogle công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
Google công bố thông tin lịch xu hướng ngành 2017 mastercode.vn
 
Nghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vnNghiên cứu về khách hàng mastercode.vn
Nghiên cứu về khách hàng mastercode.vn
 
Pd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vnPd fbuoi7 8--tongquanseo-mastercode.vn
Pd fbuoi7 8--tongquanseo-mastercode.vn
 
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vnPd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
Pd fbuoi5 6-ảnh hưởng của social media tới kết quả seo-mastercode.vn
 
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vnPdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
Pdf buoi3 4-link-building-tran-ngoc-chinh-mastercode.vn
 
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vnPd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
Pd fbuoi3 4-kỹ thuật xây dựng back link-mastercode.vn
 
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vnPd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
Pd fbuoi2 onpage – tối ưu hóa trang web-mastercode.vn
 
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vnPd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
Pd fbuoi1 giới thiệu seo tools cơ bản-seo manager + seo guy-mastercode.vn
 
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vnPdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
Pdf buoi1 2-on-page-tran-ngoc-chinh-mastercode.vn
 
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vnPdfbài 7 máy tính xác tay và máy in   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 7 máy tính xác tay và máy in bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vnPdfbài 6 bảo trì máy tính   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 6 bảo trì máy tính bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vnPdfbài 5 bảo trì và tối ưu windows   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 5 bảo trì và tối ưu windows bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vnPdfbài 4 ổ cứng hard drive   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 4 ổ cứng hard drive bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vnPdfbài 3 cpu và ram   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 3 cpu và ram bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vnPdfbài 1 giới thiệu chung về phần cứng   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 1 giới thiệu chung về phần cứng bảo trì sự cố máy tính-mastercode.vn
 
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vnPdfbài 2 bo mạch chủ (main)   bảo trì sự cố máy tính-mastercode.vn
Pdfbài 2 bo mạch chủ (main) bảo trì sự cố máy tính-mastercode.vn
 
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
Pdf bai 7 làm việc với truy vấn nâng cao-slide 07-quan tri csdl voi access-ma...
 

Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT

  • 1. Bài 6: Tạo hiệu ứng và validate Form
  • 2. Giới thiệu về mô hình Document Object Model Giới thiệu về HTML DOM Cấu trúc DOM Thuộc tính của node Phương thức của node Truy cập đến node Thêm node Xóa node Truy cập và thay đổi style của các element Đối phó với các trình duyệt khác nhau Hệ thống bài cũ Giới thiệu về mô hình Document Object Model Giới thiệu về HTML DOM Cấu trúc DOM Thuộc tính của node Phương thức của node Truy cập đến node Thêm node Xóa node Truy cập và thay đổi style của các element Đối phó với các trình duyệt khác nhau Tạo hiệu ứng và validate Form 2
  • 3. Viết mã tạo các hiệu ứng Hiệu ứng Image Rollover Hiệu ứng SlideShow Thao tác với các điều khiển SelectBox CheckBox RadioButton Form Kiểm tra tính hợp lệ cho Form Mục tiêu bài học Viết mã tạo các hiệu ứng Hiệu ứng Image Rollover Hiệu ứng SlideShow Thao tác với các điều khiển SelectBox CheckBox RadioButton Form Kiểm tra tính hợp lệ cho Form Tạo hiệu ứng và validate Form 3
  • 4. CÁC HIỆU ỨNG Biến và toán tử 4 CÁC HIỆU ỨNG
  • 5. Image Rollover là hiệu ứng thay đổi ảnh khi di chuột lên ảnh Image Rollover Tạo hiệu ứng và validate Form 5 Ảnh hiện lên khi chạy ứng dụng Ảnh hiện lên khi di chuột lên ảnh
  • 6. Thực hiện hiệu ứng này bằng cách xử lý sự kiện onMouseOver và onMouseOut cho thẻ img onMouseOver: sự kiện được kích hoạt khi người dùng di chuột lên ảnh onMouseOut: sự kiện được kích hoạt khi người dùng di chuột ra ngoài ảnh Tạo hiệu ứng Rollover Thực hiện hiệu ứng này bằng cách xử lý sự kiện onMouseOver và onMouseOut cho thẻ img onMouseOver: sự kiện được kích hoạt khi người dùng di chuột lên ảnh onMouseOut: sự kiện được kích hoạt khi người dùng di chuột ra ngoài ảnh Tạo hiệu ứng và validate Form 6
  • 7. Demo Rollover <html> <head> <script type="text/javascript"> function onMouseOverEvent() { document.img_hoa.src = "hoaover.jpg"; } function onMouseOutEvent() { document.img_hoa.src = "hoaout.jpg"; } </script> </head><body> <img name="img_hoa" src="hoaout.jpg" onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" /> </body> </html> Truy cập đến phần tử bằng attribute name Tạo hiệu ứng và validate Form 7 <html> <head> <script type="text/javascript"> function onMouseOverEvent() { document.img_hoa.src = "hoaover.jpg"; } function onMouseOutEvent() { document.img_hoa.src = "hoaout.jpg"; } </script> </head><body> <img name="img_hoa" src="hoaout.jpg" onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" /> </body> </html> Xem Demo/Rollover Truy cập đến phần tử bằng attribute name
  • 8. Vấn đề: Lần đầu tiền di chuột lên ảnh, sẽ mất một thời gian ảnh mới được load mặc dù trang web đã được mở ra từ lâu Nguyên nhân: Khi người dùng di chuột lên, ảnh mới được load Giải pháp: Load trước ảnh Kỹ thuật: Tạo đối tượng image cho mỗi ảnh muốn load trước Gán đường dẫn của ảnh cho thuộc tính src của đối tượng ảnh đó Giải thích: Khi gặp lệnh imageObject.src=“link_cua_anh” thì ảnh được load ngầm bên dưới, máy tính tiếp tục thực hiện các lệnh sau lệnh này  Giải pháp này không làm cho việc load trang web chậm đi Vấn đề nảy sinh khi thực hiện Rollover Vấn đề: Lần đầu tiền di chuột lên ảnh, sẽ mất một thời gian ảnh mới được load mặc dù trang web đã được mở ra từ lâu Nguyên nhân: Khi người dùng di chuột lên, ảnh mới được load Giải pháp: Load trước ảnh Kỹ thuật: Tạo đối tượng image cho mỗi ảnh muốn load trước Gán đường dẫn của ảnh cho thuộc tính src của đối tượng ảnh đó Giải thích: Khi gặp lệnh imageObject.src=“link_cua_anh” thì ảnh được load ngầm bên dưới, máy tính tiếp tục thực hiện các lệnh sau lệnh này  Giải pháp này không làm cho việc load trang web chậm đi Tạo hiệu ứng và validate Form 8
  • 9. Demo load trước ảnh <html><head> <script type="text/javascript"> var hoaover = new Image(); var hoaout = new Image(); function loadAnh() { hoaover.src = "hoaover.jpg"; hoaout.src = "hoaout.jpg"; } function onMouseOverEvent() { document.img_hoa.src = hoaover.src } function onMouseOutEvent() { document.img_hoa.src = hoaout.src } </script></head> <body onload = "loadAnh();"> <img name="img_hoa" src="hoaout.jpg" onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" /> </body></html> Tạo hiệu ứng và validate Form 9 <html><head> <script type="text/javascript"> var hoaover = new Image(); var hoaout = new Image(); function loadAnh() { hoaover.src = "hoaover.jpg"; hoaout.src = "hoaout.jpg"; } function onMouseOverEvent() { document.img_hoa.src = hoaover.src } function onMouseOutEvent() { document.img_hoa.src = hoaout.src } </script></head> <body onload = "loadAnh();"> <img name="img_hoa" src="hoaout.jpg" onmouseover="onMouseOverEvent();" onmouseout="onMouseOutEvent();" /> </body></html> Xem Rollover/preLoad
  • 10. Slide Show là gì Là hiệu ứng ảnh được hiện ra thay thế cho ảnh trước đó Có thể có thanh điều khiển cho người dùng Slide Show Slide Show là gì Là hiệu ứng ảnh được hiện ra thay thế cho ảnh trước đó Có thể có thanh điều khiển cho người dùng Tạo hiệu ứng và validate Form 10 Thanh điều khiển Truy cập trang web http://www.catswhocode.com/blog/top-10- javascript-slideshows-carousels-and-sliders/ để tham khảo các slide show làm bằng javascript
  • 11. Các bước để làm Slide Show Load trước tất cả các ảnh Xử lý sự kiện cho button Next Xử lý sự kiện cho button Back Các bước làm Slide Show <body onload = "loadAnh();"> <img id="hoa" src="anh0.jpg" /> <input type="button" value="back" onclick="back();" /> <input type="button" value = "next" onclick="next();"/> </body> Tạo hiệu ứng và validate Form 11 <body onload = "loadAnh();"> <img id="hoa" src="anh0.jpg" /> <input type="button" value="back" onclick="back();" /> <input type="button" value = "next" onclick="next();"/> </body> Xem SlideShow
  • 12. Demo làm Slide Show var anhAr = []; var currentIndex=0; function loadAnh() { for (var i = 0; i < 6; i++) { anhAr[i] = new Image(); anhAr[i].src = "anh"+i+".jpg"; } } function next() { if (currentIndex < 4) { currentIndex++; document.getElementById("hoa").src = anhAr[currentIndex].src; } } function back() { if (currentIndex > 0) { currentIndex--; document.getElementById("hoa").src = anhAr[currentIndex].src; } } Tạo hiệu ứng và validate Form 12 var anhAr = []; var currentIndex=0; function loadAnh() { for (var i = 0; i < 6; i++) { anhAr[i] = new Image(); anhAr[i].src = "anh"+i+".jpg"; } } function next() { if (currentIndex < 4) { currentIndex++; document.getElementById("hoa").src = anhAr[currentIndex].src; } } function back() { if (currentIndex > 0) { currentIndex--; document.getElementById("hoa").src = anhAr[currentIndex].src; } }
  • 13. Kết quả Demo Ảnh được thay đổi sau khi nhấn Next Tạo hiệu ứng và validate Form 13
  • 14. Bản đồ ảnh là ảnh có những vùng cụ thể được định nghĩa để thực hiện một hành động nào đó khi người dùng tác động lên Cho người dùng chọn khu vực (đất nước) mà người truy cập cư trú Sử dụng như menu cho người dùng chọn mặt hàng cần mua Bản đồ ảnh Tạo hiệu ứng và validate Form 14 Xem World Map
  • 15. HTML cung cấp thẻ map để tạo bản đồ ảnh Thẻ map đi liền sau thẻ img, thuộc tính usemap của thẻ img có giá trị bằng giá trị thuộc tính name của thẻ map tương ứng Thẻ area trong thẻ map để chỉ ra các vùng trên bản đồ. Vùng trên bản đồ được chỉ ra bằng thuộc tính coords Bản đồ ảnh Tạo hiệu ứng và validate Form 15
  • 16. Bản đồ ảnh <img width="1000" src="bando.jpg" usemap="#bando" id="bando" /></p> <map name="bando"> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chaumy.jpg'"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chauphi.jpg'"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chauau.jpg'"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chaua.jpg';"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chauuc.jpg';" /> </map> Thuộc tính usemap của ảnh có giá trị bằng giá trị của thuộc tính name của thẻ map Tạo hiệu ứng và validate Form 16 <img width="1000" src="bando.jpg" usemap="#bando" id="bando" /></p> <map name="bando"> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chaumy.jpg'"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chauphi.jpg'"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chauau.jpg'"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chaua.jpg';"/> <area shape="poly" coords="" href="#" onmouseover="document.getElementById('bando').src='bando.chauuc.jpg';" /> </map>
  • 17. CÁC ĐIỀU KHIỂN Biến và toán tử 17 CÁC ĐIỀU KHIỂN
  • 18. Javascript cung cấp các điều khiển để tương tác với người dùng Select Box CheckBox Radio Button Form Các điều khiển Tạo hiệu ứng và validate Form 18
  • 19. Một số element được định nghĩa thêm thuộc tính name (ví dụ như các điều khiển checkbox, radio button…) Có thể sử dụng attribute name để truy cập đến một nhóm các element có cùng giá trị attribute name Phân biệt id và name id là duy nhất, mỗi id đại diện cho 1 element Nhiều phần tử có cùng giá trị của attribute name, mỗi giá trị name đại diện cho một nhóm các phần tử Sử dụng phương thức getElementsByName(name) để lấy về một mảng các element có cùng thuộc tính name Attribute name Một số element được định nghĩa thêm thuộc tính name (ví dụ như các điều khiển checkbox, radio button…) Có thể sử dụng attribute name để truy cập đến một nhóm các element có cùng giá trị attribute name Phân biệt id và name id là duy nhất, mỗi id đại diện cho 1 element Nhiều phần tử có cùng giá trị của attribute name, mỗi giá trị name đại diện cho một nhóm các phần tử Sử dụng phương thức getElementsByName(name) để lấy về một mảng các element có cùng thuộc tính name Tạo hiệu ứng và validate Form 19
  • 20. Demo sử dụng attribute name để truy cập đến một nhóm các phần tử <html> <body > <input type="checkbox" name="test" value="how"/> <input type="checkbox" name="test" value="are"/> <input type="checkbox" name="test" value="you"/> <input type="checkbox" name="test" value="?"/> <script type="text/javascript"> var ckAr = document.getElementsByName("test"); var str = ""; for (var i = 0; i < ckAr.length; i++) { str = str + " "+ ckAr[i].value } alert(str); </script> </body> </html> Tạo hiệu ứng và validate Form 20 <html> <body > <input type="checkbox" name="test" value="how"/> <input type="checkbox" name="test" value="are"/> <input type="checkbox" name="test" value="you"/> <input type="checkbox" name="test" value="?"/> <script type="text/javascript"> var ckAr = document.getElementsByName("test"); var str = ""; for (var i = 0; i < ckAr.length; i++) { str = str + " "+ ckAr[i].value } alert(str); </script> </body> </html>
  • 21. Select Box Trên FireFox, truy cập đến giá trị được chọn của Select Box bằng thuộc tính value Trên FireFox cũng có thể thiết lập giá trị được chọn cho Select box bằng JavaScript Select Box <select id="country"> <option selected="selected">Viet Nam</option> <option value="Anh">Anh</option> <option value="My">My</option> </select>> Select Box Trên FireFox, truy cập đến giá trị được chọn của Select Box bằng thuộc tính value Trên FireFox cũng có thể thiết lập giá trị được chọn cho Select box bằng JavaScript Tạo hiệu ứng và validate Form 21 document.getElementById("country").value document.getElementById("country").value = "Mỹ"
  • 22. Bài toán Khi nhấn vào button Chọn Quốc Gia sẽ hiển thị nước được chọn Demo sử dụng Select Box Tạo hiệu ứng và validate Form 22 Xem Dieu khienSelectBox
  • 23. Demo sử dụng Select Box <html ><head> <script type="text/javascript"> function chonQuocGiaClick(){ var name = document.getElementById("country").value; alert(name); } </script> </head> <body> <select id="country"> <option selected="selected">Viet Nam</option> <option value="Anh">Anh</option> <option value="My">My</option> </select> <input type ="button" value="Chọn Quốc Gia" onclick="chonQuocGiaClick()" /> </body></html> Tạo hiệu ứng và validate Form 23 <html ><head> <script type="text/javascript"> function chonQuocGiaClick(){ var name = document.getElementById("country").value; alert(name); } </script> </head> <body> <select id="country"> <option selected="selected">Viet Nam</option> <option value="Anh">Anh</option> <option value="My">My</option> </select> <input type ="button" value="Chọn Quốc Gia" onclick="chonQuocGiaClick()" /> </body></html>
  • 24. Bài toán Demo thiết lập giá trị cho Select Box <body> <p><input type="button" value="Chau A" onclick= "chauAClick();" /> <input type="button" value="Chau Au" onclick="chauAuClick();"/> <input type="button" value="Chau My" onclick="chauMy();" /> </p> <p><select id="country"> <option selected="selected">Viet Nam</option> <option value="Anh">Anh</option> <option value="My">My</option> </select></p> </body> Tạo hiệu ứng và validate Form 24 <body> <p><input type="button" value="Chau A" onclick= "chauAClick();" /> <input type="button" value="Chau Au" onclick="chauAuClick();"/> <input type="button" value="Chau My" onclick="chauMy();" /> </p> <p><select id="country"> <option selected="selected">Viet Nam</option> <option value="Anh">Anh</option> <option value="My">My</option> </select></p> </body> Click vào Chau Au Click vào Chau My Xem Dieu khienSelect box
  • 25. Demo thiết lập giá trị cho Select Box <script type="text/javascript"> function chauAClick() { document.getElementById("country").value = "Viet Nam"; } function chauAuClick() { document.getElementById("country").value = "Anh"; } function chauMy() { document.getElementById("country").value = "My"; } </script> Tạo hiệu ứng và validate Form 25 <script type="text/javascript"> function chauAClick() { document.getElementById("country").value = "Viet Nam"; } function chauAuClick() { document.getElementById("country").value = "Anh"; } function chauMy() { document.getElementById("country").value = "My"; } </script>
  • 26. Dùng để người dùng lựa chọn CheckBox có hai trạng thái là được chọn và không được chọn Trong JavaScript, sử dụng thuộc tính checked của CheckBox để xác định và thiết lập trạng thái cho CheckBox Giá trị checked = true: CheckBox được chọn Giá trị checked = false: CheckBox không được chọn CheckBox <input type="checkbox" value ="Kem que" name="ckKem" checked="checked" /> Dùng để người dùng lựa chọn CheckBox có hai trạng thái là được chọn và không được chọn Trong JavaScript, sử dụng thuộc tính checked của CheckBox để xác định và thiết lập trạng thái cho CheckBox Giá trị checked = true: CheckBox được chọn Giá trị checked = false: CheckBox không được chọn Tạo hiệu ứng và validate Form 26
  • 27. BTVN: Tìm cách thiết lập và truy cập giá trị được chọn của CheckBox trên IE Viết lại 2 ví dụ trên để có thể chạy trên cả IE và FireFox CheckBox Tạo hiệu ứng và validate Form 27
  • 28. <html > <body> Cac loai kem trong cua hang:<br /> <input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br /> <input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br /> <input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br /> <input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br /> <input type="button" onclick="chonKem();" value="Chon kem" /> <p id="pKemDaChon"></p> </body></html> Demo sử dụng CheckBox <html > <body> Cac loai kem trong cua hang:<br /> <input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br /> <input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br /> <input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br /> <input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br /> <input type="button" onclick="chonKem();" value="Chon kem" /> <p id="pKemDaChon"></p> </body></html> Tạo hiệu ứng và validate Form 28 Ứng dụng liệt kê những loại kem được chọn Xem Dieu khienCheckbox
  • 29. Demo sử dụng CheckBox <html ><head> <script type="text/javascript"> function chonKem() { var str = "Nhung loai kem ban da chon la:<br/>"; var kemAr = document.getElementsByName("ckKem"); for (var i = 0; i < kemAr.length; i++) { if (kemAr[i].checked) { str= str + kemAr[i].value +"<br/>" } } document.getElementById("pKemDaChon").innerHTML = str; } </script> </head><body> Cac loai kem trong cua hang:<br /> <input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br /> <input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br /> <input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br /> <input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br /> <input type="button" onclick="chonKem();" value="Chon kem" /> <p id="pKemDaChon"></p></body></html> Tạo hiệu ứng và validate Form 29 <html ><head> <script type="text/javascript"> function chonKem() { var str = "Nhung loai kem ban da chon la:<br/>"; var kemAr = document.getElementsByName("ckKem"); for (var i = 0; i < kemAr.length; i++) { if (kemAr[i].checked) { str= str + kemAr[i].value +"<br/>" } } document.getElementById("pKemDaChon").innerHTML = str; } </script> </head><body> Cac loai kem trong cua hang:<br /> <input type="checkbox" value="Kem que" name="ckKem"/>Kem que <br /> <input type="checkbox" value="Kem dau" name="ckKem"/>Kem dau <br /> <input type="checkbox" value="Kem bo" name="ckKem"/>Kem bo <br /> <input type="checkbox" value="Kem vani" name="ckKem"/>Kem vani <br /> <input type="button" onclick="chonKem();" value="Chon kem" /> <p id="pKemDaChon"></p></body></html>
  • 30. Dùng để người dùng lựa chọn CheckBox có hai trạng thái là được chọn và không được chọn Thường được sử dụng theo nhóm, trong nhóm chỉ một Radio được chọn Các radio có cùng tên thuộc cùng một nhóm Radio Button <input type="radio" value="Lon" name="rdSize" checked=checked/>Lon<br /> <input type="radio" value="Vua" name="rdSize" />Vua<br /> <input type="radio" value="Nho" name="rdSize" />Nho<br /> Dùng để người dùng lựa chọn CheckBox có hai trạng thái là được chọn và không được chọn Thường được sử dụng theo nhóm, trong nhóm chỉ một Radio được chọn Các radio có cùng tên thuộc cùng một nhóm Tạo hiệu ứng và validate Form 30 <input type="radio" value="Lon" name="rdSize" checked=checked/>Lon<br /> <input type="radio" value="Vua" name="rdSize" />Vua<br /> <input type="radio" value="Nho" name="rdSize" />Nho<br />
  • 31. Demo sử dụng Radio Button Tạo hiệu ứng và validate Form 31 Hiển thị loại kem được chọn Xem Dieu khienRadio Button
  • 32. Demo sử dụng Radio Button var size=""; var sizeAr = document.getElementsByName("rdSize"); for (var i = 0; i < sizeAr.length; i++) { if (sizeAr[i].checked) { size = sizeAr[i].value; } } str = str + "Kich thuoc ban da chon la: " + size; Tạo hiệu ứng và validate Form 32 var size=""; var sizeAr = document.getElementsByName("rdSize"); for (var i = 0; i < sizeAr.length; i++) { if (sizeAr[i].checked) { size = sizeAr[i].value; } } str = str + "Kich thuoc ban da chon la: " + size;
  • 33. FORM & KIỂM TRA HỢP LỆ CHO FORM Biến và toán tử 33 FORM & KIỂM TRA HỢP LỆ CHO FORM
  • 34. Dùng để gửi dữ liệu lên server Khi người dùng nhấn vào Button Submit thì dữ liệu sẽ được đóng gói và gửi lên Server Form sử dụng phương thức GET hoặc POST để gửi dữ liệu lên Server Form First Name: Phạm Last Name: Thanh ….. Tạo hiệu ứng và validate Form 34 First Name: Phạm Last Name: Thanh …..
  • 35. Kiểm tra tính hợp lệ là Kiểm tra xem thông tin cần thiết đã được điền vào form chưa? VÀ Thông tin điền vào có đúng yêu cầu hay không? Validate form rất cần thiết để đảm bảo tính đúng đắn của csdl Kiểm tra tính hợp lệ của Form Tạo hiệu ứng và validate Form 35 Thông báo lỗi
  • 36. Trước đây việc kiểm tra hợp lệ được thực hiện trên server (server-side valiation) Javascript ra đời, thực hiện kiểm tra hợp lệ trên browser (client-side validation) trước khi gửi dữ liệu lên server Với một số lượng lớn người truy cập, kiểm tra hợp lệ trên brower sẽ giảm tải cho server Chú ý: Vẫn phải kiểm tra hợp lệ trên server vì người dùng có thể disable javascript Kiểm tra tính hợp lệ của Form Trước đây việc kiểm tra hợp lệ được thực hiện trên server (server-side valiation) Javascript ra đời, thực hiện kiểm tra hợp lệ trên browser (client-side validation) trước khi gửi dữ liệu lên server Với một số lượng lớn người truy cập, kiểm tra hợp lệ trên brower sẽ giảm tải cho server Chú ý: Vẫn phải kiểm tra hợp lệ trên server vì người dùng có thể disable javascript Tạo hiệu ứng và validate Form 36
  • 37. Mỗi Form có một hoặc nhiều button Submit Sự kiện onSubmit của form Được kích hoạt khi người dùng nhấn vào button Submit Nếu onSubmit có giá trị trả về là True, dữ liệu được gửi lên Server Nếu onSubmit có giá trị trả về là False, dữ liệu không được gửi lên Server Sự kiện onSubmit của Form Mỗi Form có một hoặc nhiều button Submit Sự kiện onSubmit của form Được kích hoạt khi người dùng nhấn vào button Submit Nếu onSubmit có giá trị trả về là True, dữ liệu được gửi lên Server Nếu onSubmit có giá trị trả về là False, dữ liệu không được gửi lên Server Tạo hiệu ứng và validate Form 37
  • 38. Viết hàm thực hiện việc validate Nếu thông tin không hợp lệ, trả về giá trị False Nếu thông tin hợp lệ, trả về True Hàm này sẽ được dùng xử lý sự kiện cho onSubmit cho Form Thực hiện kiểm tra hợp lệ Viết hàm thực hiện việc validate Nếu thông tin không hợp lệ, trả về giá trị False Nếu thông tin hợp lệ, trả về True Hàm này sẽ được dùng xử lý sự kiện cho onSubmit cho Form Tạo hiệu ứng và validate Form 38
  • 39. Khi nhấn vào button Submit, form sẽ được validate Nếu tên chưa được nhập, sẽ hiển thị thông báo lỗi Nếu tên được nhập, hiển thị lời chào Demo validate form <html><body> <form action="#" onsubmit="return validateForm()" > <p>Name: <input type = "text" name="txtName" /></p> <p><input type="submit" value="Submit“ /></p> </form> </body></html> Tạo hiệu ứng và validate Form 39 <html><body> <form action="#" onsubmit="return validateForm()" > <p>Name: <input type = "text" name="txtName" /></p> <p><input type="submit" value="Submit“ /></p> </form> </body></html> Xem Dieu khienForm
  • 40. Demo kiểm tra hợp lệ cho Form <html><head> <script type="text/javascript"> function validateForm() { var name = document.forms[0].txtName.value; if (name == "") { alert("Hay nhap ten vao!"); return false; } else { alert("Hi " + name +" !" ); return true; } } </script></head> <body> <form action="#" onsubmit="return validateForm()" > <p>Name: <input type = "text" name="txtName" /></p> <p><input type="submit" value="Submit“ /></p> </form></body></html> Trả về False nếu dữ liệu không hợp lệ Tạo hiệu ứng và validate Form 40 <html><head> <script type="text/javascript"> function validateForm() { var name = document.forms[0].txtName.value; if (name == "") { alert("Hay nhap ten vao!"); return false; } else { alert("Hi " + name +" !" ); return true; } } </script></head> <body> <form action="#" onsubmit="return validateForm()" > <p>Name: <input type = "text" name="txtName" /></p> <p><input type="submit" value="Submit“ /></p> </form></body></html> Xử lý sự kiện onSubmit cho Form Trả về True nếu dữ liệu hợp lệ
  • 41. Có thể truy cập đến Form bằng các cách sau Chỉ số của Form: Document.Forms[0] Tên Form: Document.Forms[“TenForm”] Chỉ số ID của Form: Document.Forms[“id”] Các cách khác để truy cập Form Tạo hiệu ứng và validate Form 41
  • 42. Có thể dùng JavaScript để tạo các hiệu ứng như Rollover, Slide Show Khi tạo hiệu ứng Rollover, khi di chuột lên ảnh, ảnh mới được load. Cho nên, nên load trước ảnh JavaScript cung cấp các phương thức và thuộc tính để thao tác với các điều khiển như SelectBox, CheckBox, Radio Button và Form Radio Button thường được sử dụng theo nhóm. Mỗi nhóm chỉ có một Radio được chọn. Những Radio nào cùng attribute name được xem là cùng một nhóm Mỗi Form có một button có type submit. Khi button này được nhấn, sẽ kích hoạt sự kiện onSubmit của Form Nếu xử lý sự kiện onSubmit trả về True, dữ liệu được gửi đi. Nếu trả về False, dữ liệu không được gửi đi Tổng kết bài học Có thể dùng JavaScript để tạo các hiệu ứng như Rollover, Slide Show Khi tạo hiệu ứng Rollover, khi di chuột lên ảnh, ảnh mới được load. Cho nên, nên load trước ảnh JavaScript cung cấp các phương thức và thuộc tính để thao tác với các điều khiển như SelectBox, CheckBox, Radio Button và Form Radio Button thường được sử dụng theo nhóm. Mỗi nhóm chỉ có một Radio được chọn. Những Radio nào cùng attribute name được xem là cùng một nhóm Mỗi Form có một button có type submit. Khi button này được nhấn, sẽ kích hoạt sự kiện onSubmit của Form Nếu xử lý sự kiện onSubmit trả về True, dữ liệu được gửi đi. Nếu trả về False, dữ liệu không được gửi đi Tạo hiệu ứng và validate Form 42