10/10/2018, 10:27

help ! javascript có 8 dòng code mà không biết lỗi ở đâu!

mình làm một trang thế này:

<script language="javascript">
var time = document.getElementById("time").value;
function setTime(){
alert(time);
}
</script>
<input type="hidden" id="time" value="60">
<a href="#" onclick="setTime()">gia tri</a>

theo mình thì khi click vào thẻ <a> kia thì nó phải hiện ra số 60 mà đằng này nó lại hiện ra undefined. ai biết chỉ mình cái !
tabvn viết 12:31 ngày 10/10/2018
bạn thử: thay thế <script language="javascript"> với

<script type="text/javascript">
minhbkis viết 12:40 ngày 10/10/2018
Được gửi bởi tabvn
bạn thử: thay thế <script language="javascript"> với

<script type="text/javascript">
kích vào nó chả hiện ra cái gì luôn
htvu viết 12:35 ngày 10/10/2018
Là người của BKIS thì Kêu anh Quảng chỉ cho. hehe đùa thôi. Bỏ cái dòng var time = document.getElementById("time").value; vào bên trong function setTime.

Còn lý do tại sao là vì tại thời điểm thực thi câu lệnh getElementById DOM chưa ghi nhận sự tồn tại của thẻ input (id="time") vì script được đặt trước. Nên getElementById sẽ trả về null, mà null.value thì chắc chắn là undifined rồi. Bạn có thể kiểm tra điều này bằng cách chuyển nguyên tag script ra sau (trong trường hợp không muốn đưa lệnh var time = document.getElementById("time").value; vào trong function).
lenggiauit viết 12:28 ngày 10/10/2018
Được gửi bởi minhbkis
mình làm một trang thế này:

<script language="javascript">
var time = document.getElementById("time").value;
function setTime(){
alert(time);
}
</script>
<input type="hidden" id="time" value="60">
<a href="#" onclick="setTime()">gia tri</a>

theo mình thì khi click vào thẻ <a> kia thì nó phải hiện ra số 60 mà đằng này nó lại hiện ra undefined. ai biết chỉ mình cái !
<script language="javascript">
function setTime(){
var time = document.getElementById("time").value;

alert(time);
}
</script>
<input type="hidden" id="time" value="60">
<a href="#" onclick="setTime()">gia tri</a> js load trước html ==> null object
Thanh duc viết 12:28 ngày 10/10/2018
Được gửi bởi htvu
Là người của BKIS thì Kêu anh Quảng chỉ cho. hehe đùa thôi.
Bạn chạy trên trình duyệt nào vậy. Report bug cho cộng đồng mạng ngay thôi
minhbkis viết 12:34 ngày 10/10/2018
thank mọi người nhé mình làm được rồi!
ủa! không thấy cái nút thank đâu ta ?

Được gửi bởi htvu
Là người của BKIS thì Kêu anh Quảng chỉ cho.
dựa hơi anh Quảng tí thôi chứ đâu có phải người bkis đâu haha .!..!!...
duyuoc viết 12:38 ngày 10/10/2018
Theo mình nghĩ là do biến time ở trên không phải biến toàn cục nện vào trong function nó không nhận .Trong jascript thì bạn chỉ cần khai báo thế này là đủ
[quote]
<input type="hidden" id="time" value="60">
<a href="#" onclick="return setTime()">gia tri</a>
<script language="javascript">
time = document.getElementById("time").value;
function setTime(){
alert(time);
}
</script>
[quote]
snoob_clo4 viết 12:37 ngày 10/10/2018
Được gửi bởi minhbkis
thank mọi người nhé mình làm được rồi!
ủa! không thấy cái nút thank đâu ta ?



dựa hơi anh Quảng tí thôi chứ đâu có phải người bkis đâu haha .!..!!...
Dựa hơi anh Quãng có được quyền tự do chém gió không vậy bạn, nếu được thì cho mình tham gia nửa
s.code viết 12:29 ngày 10/10/2018
@Chủ thớt: Bạn bốc đoạn html bên dưới cho lên trước đoạn script ấy.
Bài liên quan
0