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

前回の質問でフォームでラジオボタンとセレクトメニューの連動をおこなうことができましたが、これを複数項目で選択可能にしたいのですが、コードを教えて頂けませんでしょうか?

このような感じです。

用紙の種類
◎デザインA  ◎選択しない  ◎その他{        }
 デザインB
 デザインC

色数
◎デザインA  ◎選択しない  ◎その他{        }
 デザインB
 デザインC

<m(__)m>どうか宜しくお願い致します。

「ラジオボタンとセレクトメニューの連動が複」の質問画像

A 回答 (1件)

現状がどのようになっているのか不明なので、適当に設定していますが…



こんな感じではどうでしょうか?(name=linkageのラジオボタンが対象)
(全角空白は半角に)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">

</head>
<body>
<form action="#">
<div>用紙の種類</div>
<div>
<input type="radio" name="linkage" value="r1">
<select name="design">
<option value="A">デザインA</option>
<option value="B">デザインB</option>
<option value="C">デザインC</option>
</select>
</div>
<div>
<input type="radio" name="linkage" value="r2" checked>選択しない
</div>
<div>
<input type="radio" name="linkage" value="r3">その他
<input type="text" value="">
</div>
</form>

<form action="#">
<div>色数</div>
<div>
<input type="radio" name="linkage" value="r1">
<select name="design">
<option value="A">デザインA</option>
<option value="B">デザインB</option>
<option value="C">デザインC</option>
</select>
</div>
<div>
<input type="radio" name="linkage" value="r2" checked>選択しない
</div>
<div>
<input type="radio" name="linkage" value="r3">その他
<input type="text" value="">
</div>
</form>


<script type="text/javascript">
<!--
/*@cc_on@*/
(function(test){
document./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'click', function(evt){
 var t = evt./*@if(1)srcElement @else@*/target /*@end@*/;
 if(test(t)) setDisable(t);
}, false);

function setDisable(t){
 var i, elm, e, n, f = t.form;
 if(f) elm = f.elements; else return;
 for(i=0; e=elm[i++];)
  if(!test(e) && e.type!="submit" && e.type!="reset") e.disabled = true;
 elm = t.parentNode.childNodes;
 for(i=0; e=elm[i++];){
  n = e.nodeName;
  if(e!=t && (n=="INPUT" || n=="SELECT" || n=="TEXTAREA" || n=="BUTTON"))
   e.disabled = false;
 }
}
//初期設定
var i, e, inp = document.getElementsByTagName("input");
for(i=0; e=inp[i++];)
 if(test(e) && e.checked) setDisable(e);

})(function(e){
 return (e.nodeName=="INPUT" && e.type=="radio" && e.name=="linkage");
});
//-->
</script>
</body>
</html>
    • good
    • 0
この回答へのお礼

fujillinさま

早々のご回答ありがとうございます。
全く出来なくて悩んでいたのですごく助かりました。

あと、今それぞれの状態をformでくくってありますが、ひとつのformでくくって作ること可能ですか?
formが複数ありますと、送信がうまくいかないようなので。。。
全くの初心者で申し訳ありません。お時間ありましたら、よろしくお願いします。

お礼日時:2011/08/02 20:27

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