プロが教えるわが家の防犯対策術!

お世話になります。

ある画面に複数ボタンがあって
押されたボタンをdisabledにしたいなと思っています。
ただしどのボタンがおされても同じ関数に飛んでほしいのですが
いまいち解決できません。

<form name="form">
<input type="button" name="syori1" value="ボタン1" onClick="javascript:hogehoge()">
<input type="button" name="syori2" value="ボタン2" onClick="javascript:hogehoge()">
<input type="button" name="syori3" value="ボタン3" onClick="javascript:hogehoge()">
</form
>
とあった場合

function hogehoge(){
document.form.ボタンの名前.disabled=true;
}

としたいのですが
名前の部分は動的に変えることは可能なのでしょうか?
普通に
document.form.syori1.disabled=true;
と書けば簡単なのですが、ボタンの数が決まっていないためボタン名を指定して書くことはできません。

ボタン名は
onClick="javascript:hogehoge(document.form.ボタンの名前.name)"
で、送ることができるのは確認したのですが
hogehoge(ボタンの名前)
の方でどうやってdisabledのところに入れればいいか解りません。
よろしくお願い致します。

A 回答 (1件)

そういう場合は名前じゃなくて、thisというオブジェクトを渡します。



<script language=javascript>
function hogehoge(btn){
btn.disabled=true;
}
</script>
<form name="form">
<input type="button" name="syori1" value="ボタン1" onClick="javascript:hogehoge(this)">
<input type="button" name="syori2" value="ボタン2" onClick="javascript:hogehoge(this)">
<input type="button" name="syori3" value="ボタン3" onClick="javascript:hogehoge(this)">
</form>
    • good
    • 6
この回答へのお礼

お世話になります。

thisを使うことにより解決できました。
ありがとうございました。

thisも一応自分ではやってみたつもりだったのですが
なぜか画面全てがdisabled状態なっしまいまして・・・
どこかタイピングミスがあったようです。

お礼日時:2006/08/10 18:27

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