PDA

View Full Version : Một số thắc mắc về javascript và css



boyhello456
05-05-2009, 19:00
em đang làm ví dụ về việc làm trễ một hành động mà sửa hoài mà nó vẫn không chạy đc. Mong các anh/ chị fix lỗi dùm em
<Quote>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Làm trễ một hành động</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
var justWait;

function showAlert(theDelay){
alert('Đã trải qua ' + (theDelay/1000) + ' giây.');
}

function startAlert(){
var theDelay = document.forms[0].seconds.value * 1000;
justWait = setTimeOut ('showAlert(' + theDelay + ')', theDelay);
}

function stopAlert(){
clearTimeOut(justWait);
alert('Bộ định giờ đã được ngưng!');
}
</script>
</head>

<body>
<form id="EntryField" name="EntryField" action="none" >
<input class="inputField" type="text" name="seconds" id="theDelay" size="5" tabindex="0"><br>
<span class="instructions">Hướng dẫn</span>
<br>
<br>
<p>1. Nhập vào số giây muốn ngưng</p>
<p>2. Nhấp <a href="#" onClick="javascript : startAlert();"> vào đây </a> để bắt đầu gọi hàm</p>
<p>3. Nhấp <a href="#" onClick="javascript : stopAlert();"> vào đây </a> để ngưng gọi hàm</p>
</form>
</body>
</html>

</Quote>

snoob
06-05-2009, 17:50
Toàn bộ em đã fix cho bác một số lỗi:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Làm trễ một hành động</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
var justWait;

function showAlert(theDelay){
alert('Đã trải qua ' + (theDelay/1000) + ' giây.');
}

function startAlert(){
var theDelay = document.forms[0].seconds.value * 1000;
justWait = setTimeout('showAlert(' + theDelay + ')', theDelay);
}

function stopAlert(){
clearTimeout(justWait);
alert('Bộ định giờ đã được ngưng!');
}
</script>
</head>

<body>
<form id="EntryField" name="EntryField" action="none" >
<input class="inputField" type="text" name="seconds" id="theDelay" size="5" tabindex="0"/><br />
<span class="instructions">Hướng dẫn</span>
<br />
<br />
<p>1. Nhập vào số giây muốn ngưng</p>
<p>2. Nhấp <a href="#" onclick="startAlert();"> vào đây </a> để bắt đầu gọi hàm</p>
<p>3. Nhấp <a href="#" onclick="stopAlert();"> vào đây </a> để ngưng gọi hàm</p>
</form>
</body>
</html>
Nêú xài firefox bác nên vào tools->errorCosole để debug

nnanh01
06-05-2009, 18:14
<code>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Làm trễ một hành động</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
var justWait = 0;
//để cái này ở ngoài thì nó mới lặp lại theo n giay nhập vào
//để ở trong lần tiếp theo nó biết cái nào mà lấy??
var theDelay = 0;

function showAlert(theDelay){

alert('Đã trải qua ' + (theDelay/1000) + ' giây.');

}

function startAlert(){

theDelay = document.forms[0].seconds.value * 1000;
// không có cái này người ta nhập vào số 0 hoặc số âm hoặc để trống thì ói hàng
if(theDelay <= 0)

theDelay = 2000;

justWait = setInterval('showAlert(' + theDelay + ')', theDelay);

}

function stopAlert(){

if(justWait)
{
// phải clear biến cho đàng hoàng
// không clear thì biến vẫn cứ có giá trị có nghĩa
justWait = clearInterval(justWait);

alert('Bộ định giờ đã được ngưng!');
}
else
alert('Chưa kích hoạt bộ định giờ!');
}

</script>
</head>

<body>
<form id="EntryField" name="EntryField" action="none" >
<input class="inputField" type="text" name="seconds" id="theDelay" size="5" tabindex="0"/><br />
<span class="instructions">Hướng dẫn</span>
<br />
<br />
<p>1. Nhập vào số giây muốn ngưng</p>
<p>2. Nhấp <a href="#" onclick="startAlert();"> vào đây </a> để bắt đầu gọi hàm</p>
<p>3. Nhấp <a href="#" onclick="stopAlert();"> vào đây </a> để ngưng gọi hàm</p>
</form>
</body>
</html>
</code>

Ói hàng chưa??

boyhello456
07-05-2009, 08:40
thank các bác đã fix lỗi dùm em.