電子書籍の厳選無料作品が豊富!

似たような質問があり、申し訳ありません。
前回私の説明不足で私の求めていた回答が無かったので
再度、詳しい説明をして質問します
Javascriptで最初からdisabled状態のボタンを
一定時間秒後に有効化して、
2度押し防止(1回押すとdisabed化)で5秒後にページ移動がないと
disabled解除にしたいのですが、どうすればいいでしょうか?
簡単に順序を書くと
1.[disabled状態のボタンが存在する]
2.[一定時間経過するとdisabled状態のボタンが有効化]
3.[1回クリックするとボタンがdisabled化]
4.[5秒後にボタンのdisabled解除]
としたいのですが、そこに補足があって
<head>の中に記述するタイプで
複数のボタンに使えるタイプがいいんです。
なおかつ一定時間(30秒や15秒など)を個別設定したいんですが、
複雑すぎて、難しいのでどなたか教えてください。

A 回答 (4件)

<html>


<head>
<script>
window.onload=function(){
clrTmbtn('a',1000);
clrTmbtn('b',2000);
clrTmbtn('c',3000);
}
function clrTmbtn(i,t){ setTimeout("disbtn('"+i+"')",t);}
function disbtn(i){ if(typeof(i)=='object') obj=i; else obj=$(i); obj.disabled = !obj.disabled;}
function $(i){ return document.getElementById(i);}
function exe1(){
//適当な処理
}
</script>
<body>
1秒置きに解除。クリック後、数秒で解除
<input type="button" id="a" value="test1" disabled onClick="disbtn(this);exe1();clrTmbtn('a',1000)"><br>
<input type="button" id="b" value="test2" disabled onClick="disbtn(this);exe1();clrTmbtn('b',2000)"><br>
<input type="button" id="c" value="test3" disabled onClick="disbtn(this);exe1();clrTmbtn('c',3000)"><br>

</body>
</html>
    • good
    • 0

#2です。


書き忘れましたがあくまでサンプルです。
他にjavascript使ってると、その内容によっては一方がもう一方に干渉して動きません。
どちらか、あるいは両方手直しする必要があるかも。

この回答への補足

わかりました。
IDとOnclick=""を使えるともう少し簡単になりますか?
もし使いやすくなるんで在れば、お願いします。

補足日時:2008/03/18 15:12
    • good
    • 0

サンプルです。


設定が何番目か、って事で面倒だけど、body内には手を加えたくないようなので… せめてIDでも付けられればもっと簡単になります。

<html>
<head>
<title></title>
<style type="text/css">
</style>
<script type="text/javascript">
var setting = {
0:3000, // 0番目のdisabledのinputは3秒間無効化
1:5000 // 1番目のdisabledのinputは5秒間無効化
}
window.onload = function(){
var INP = document.getElementsByTagName('input');
var x = 0;
for(var i=0;INP[i];i++) {
if(INP[i].disabled) {
setting[x] = [setting[x],INP[i]];
INP[i].onclick=Function('ocH('+x+')');
ocH(x);
x++;
}
}
}
function ocH(x){
setting[x][1].disabled = true;
setTimeout(
Function('setting['+x+'][1].disabled = false;'),
setting[x][0]);
}
</script>
</head>
<body>


<form onsubmit="return false">
<input type="text" name="A" value="bbb">
<input type="submit" value="送信ボタン1" disabled>
</form>
<p>
<input type="button" value="ボタン1" disabled>
</p>

</body>
</html>
    • good
    • 0

setTimeout() を使ったら良いんじゃない?


http://www.tohoho-web.com/js/window.htm#setTimeout
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!