みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

タイマー機能について

テキストに書いてあったのですが、デジタル時計を作り、1秒事に時間を動かすプログラムを作りました。
ですが、テキストどおりに作ったにも関わらず時間が動かずに大変困っています。
そこで皆様方のお力をお貸しして頂きたく、こちらに質問させてもらいました。
少し長いですが、ソースコードは以下のとおりです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>タイマー</title>
<style type="text/css">
input { width: 90px;
font-size: 70px;
font-family:monospace;
}
p{font-size: 60px;}
<script type="text/javascript">
var hourBox, minBox, secBox;
var timer;

window.onload = init();
funciton init() {
hourBox = document.clockForm.hour;
minBox = document.clockForm.minute;
secBox = document.clockForm.sec;
dClock();
}
function dClock() {
var now = new Date();
var hour = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();

if (hour<10) hour = "0" + hour;
if (min<10) = "0" + min;
if (sec<10) = "0" + sec;

hourBox = hour;
minBox = min;
secBox = sec;
timer = setTimeout("dClock()", 1000);
}
</style>
</script>
</head>
<body bgcolor="#FFFFFF">
<form name="clockForm"><p>
<input type="text" name="hour">時
<input type="text" name="minute">分
<input type="text" name="sec">秒
</p></form>
</body>
</html>

これでプログラムを実行すると、
□時□分□秒
(□はテキストボックスと思って下さい)
このような画面が表示されます。
なので、テキストボックスの全てに「10」と入力しましたが、いくら待っても時間が変更する兆しが見えません。
どうしたらちゃんと動くのでしょうか。
アドバイスどうぞ宜しくお願い致します。

投稿日時 - 2011-05-10 12:32:16

QNo.6727359

すぐに回答ほしいです

質問者が選んだベストアンサー

いろいろおかしい点がありますね。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>タイマー</title>
<style type="text/css">
input { width: 90px;
font-size: 70px;
font-family:monospace;
}
p{font-size: 60px;}
</style><!-- タグの開始・終了が合っていない -->
<script type="text/javascript">
var hourBox, minBox, secBox;
var timer;

//window.onload = init(); ()を付けるとその時点で実行されてしまう
window.onload = init;

//funciton init() { スペルミス
function init() {
hourBox = document.clockForm.hour;
minBox = document.clockForm.minute;
secBox = document.clockForm.sec;
dClock();
}
function dClock() {
var now = new Date();
var hour = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();

if (hour<10) hour = "0" + hour;
//if (min<10) = "0" + min; 構文エラー
if (min<10) min = "0" + min;
//if (sec<10) = "0" + sec; 構文エラー
if (sec<10) sec = "0" + sec;

//hourBox = hour; valueに設定しないとテキストボックスに表示されない
hourBox.value = hour;
//minBox = min; valueに設定しないとテキストボックスに表示されない
minBox.value = min;
//secBox = sec; valueに設定しないとテキストボックスに表示されない
secBox.value = sec;
timer = setTimeout("dClock()", 1000);
}
<!--</style> タグの開始・終了が合っていない -->
</script>
</head>
<body bgcolor="#FFFFFF">
<form name="clockForm"><p>
<input type="text" name="hour">時
<input type="text" name="minute">分
<input type="text" name="sec">秒
</p></form>
</body>
</html>

なぜテキストボックスになっているのかは分かりませんが、値を入れる必要はありません。
というか入れても上書きされます。

投稿日時 - 2011-05-10 13:49:56

お礼

この度は何とお恥ずかしいソースコードを載せてしまったのか後悔してしまいます。
ただ、回答者様にチェックして頂かなければ永遠に誤解のままで終わってしまっていたはずであり、回答者様に何と感謝をすればいいのか分かりません。
テキストでは、回答者様のご指摘どおりのままのソースコードが書かれてありました。
単なる私の思い込みでこんな羞恥心を晒してしまい、再度ソースコードの見直しを教訓として2度と同じようなミスの無いように心がける次第であります。
本当にありがとうございました。

投稿日時 - 2011-05-10 14:37:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問