プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。
下記のような機能を実装したいと思っています。
どなたか教えていただけませんでしょうか?

<html>
<head>
<title>サンプル</title>
</head>

<input type="radio" name="radio1" value="a">A
<input type="radio" name="radio1" value="b">B
<input type="radio" name="radio1" value="c">C
<input type="radio" name="radio1" value="x">全部ダメ
<br><br>

<input type="button" value="Aボタン">
<input type="button" value="Bボタン">
<input type="button" value="Cボタン">

</body>
</html>

ラジオの「A」を選択すると「Aボタン」のみ有効で他は無効(disabled)になり
「B」を選択すると「Bボタン」のみ有効というように、
選択したラジオボタンの値と有効なボタンを連動させたいのです。
さらに、ラジオの「全部ダメ」を選択すると全てのボタンを無効としたいです。

ラジオボタンの値の取得のjavascriptなど個々の機能について調べてみたりしたのですが
どのように組み合わせれば、機能を実現できるのかわかりませんでした。

お手数ですが、ご教示いただけますでしょうか。。
可能ならばソースのサンプルをいただけるとありがたいのですが。
どうぞよろしくお願いいたします。

A 回答 (2件)

こんにちは。



こんな感じでどうでしょうか。
もうちょっと工夫すれば汎用性を持たせることが出来ますがこんな方法がありますということで。
他にもいろいろ書き方がありますのでその辺は応用利かせてみてください。

動きの説明
1.HTMLの属性で全てボタンをdisable
2.ラジオがクリックされた際にsetButtonへdisableを解除するボタンの名称を渡す
3.一度全てのボタンをdisableする(リセットの意)
4.2で渡されたボタンのみdisableをfalse(その前の条件はetButtonに値が来なかったとき=全てダメ)

<html>
<head>
<title>TEST</title>
<script type="text/javascript">
<!--
function setButton ( value ) {
frmTest['btnA'].disabled = true;
frmTest['btnB'].disabled = true;
frmTest['btnC'].disabled = true;
if ( value != undefined )
frmTest[value].disabled = false;
}
//-->
</script>
</head>
<body>
<form name="frmTest">
<input type="radio" name="radio1" value="a" onclick="setButton('btnA');">A
<input type="radio" name="radio1" value="b" onclick="setButton('btnB');">B
<input type="radio" name="radio1" value="c" onclick="setButton('btnC');">C
<input type="radio" name="radio1" value="x" onclick="setButton();">全部ダメ
<br><br>
<input type="button" value="Aボタン" name="btnA" disabled>
<input type="button" value="Bボタン" name="btnB" disabled>
<input type="button" value="Cボタン" name="btnC" disabled>
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
思い通りに動作させることができました。
いろいろ応用できるように勉強いたします!

お礼日時:2011/02/01 15:24

作ってたらすでに回答が出てましたね・・・でもせっかくなので。



<html>
<head>
<title>サンプル</title>
<script type="text/javascript">
<!--
function selectradio() {
var els=document.forms["selectform"].elements;
var str="";
for(i=0;i<els.length;i++) {
if(!(els[i].type)) continue;
if(els[i].type.toLowerCase() !='radio') continue;
if(!(els[i].checked)) continue;
var bt_a_flg=true;
var bt_b_flg=true;
var bt_c_flg=true;
if(els[i].value=="a")bt_a_flg=false;
if(els[i].value=="b")bt_b_flg=false;
if(els[i].value=="c")bt_c_flg=false;
document.getElementById("bt_a").disabled=bt_a_flg;
document.getElementById("bt_b").disabled=bt_b_flg;
document.getElementById("bt_c").disabled=bt_c_flg;
break;
}
}
-->
</script>
</head>
<body onload="selectradio();">
<form name="selectform">
<input type="radio" name="radio1" value="a" onclick="selectradio();" onfocus="selectradio();">A
<input type="radio" name="radio1" value="b" onclick="selectradio();" onfocus="selectradio();">B
<input type="radio" name="radio1" value="c" onclick="selectradio();" onfocus="selectradio();">C
<input type="radio" name="radio1" value="x" onclick="selectradio();" onfocus="selectradio();">全部ダメ
<br><br>

<input type="button" id="bt_a" value="Aボタン">
<input type="button" id="bt_b" value="Bボタン">
<input type="button" id="bt_c" value="Cボタン">
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

ご回答いただきまして、ありがとうございます。
思い通りに動作させることができ、大変参考になりました。

お礼日時:2011/02/01 15:27

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