以前こちらで、selectメニューに連動するdisableの切替方法をお聞きして、下記のようなものを作成しました。
ここでCGIの仕様上、selectメニュー内のvalue値に日本語(1単語)を使用したいと思い、value値以外の値を取得しようとしてみましたが、うまくいきません。
何かよい方法はありますでしょうか?
<html>
<head>
<script type="text/javascript">
window.onload = function(){
disableAllGr();
}
function disableAllGr(){
var inputList = document.getElementsByTagName('p');
for(var i=0;i<inputList.length;i++){
var obj=inputList[i];
if(obj.id.match(/^gr_/)){
var n=obj.firstChild;
while(n){
if(n.nodeName=="INPUT" && n.type=="radio") n.disabled=true;
if(n.nodeName=="INPUT" && n.type=="checkbox") n.disabled=true;
if(n.nodeName=="INPUT" && n.type=="text") n.disabled=true;
if(n.nodeName=="SELECT") n.disabled=true;
n=n.nextSibling;
}
}
}
}
function fchk2(obj) {
disableAllGr();
var nameList = obj.value.split(/,/);
for( var i in nameList){
if(!document.getElementById('gr_'+nameList[i])) return false;
var n=document.getElementById('gr_'+nameList[i]).firstChild;
while(n){
if(n.nodeName=="INPUT" && n.type=="radio") n.disabled=false;
if(n.nodeName=="INPUT" && n.type=="checkbox") n.disabled=false;
if(n.nodeName=="INPUT" && n.type=="text") n.disabled=false;
if(n.nodeName=="SELECT") n.disabled=false;
n=n.nextSibling;
}
}
}
</script>
</head>
<body>
<form>
<p id="ctr_FLAG">
<select onchange='fchk2(this)'>
<option selected="selected" value="">選んでください</option>
<option value="A,A2">Aをアクティブ</option>
<option value="A,A2,B,B2">AとBをアクティブ</option>
<option value="A,A2,B,B2,C,C2">AとBとCをアクティブ</option>
</select>
</p>
<p>A---------------------</p>
<p id="gr_A">
<input type="radio" value="2mm" />テストA
<input type="radio" value="3mm" />テストAA
</p>
<p id="gr_A2">
<input type="checkbox" value="2mm" /> テストA
<input type="checkbox" value="3mm" /> テストAA
</p>
<p>B-----------------------</p>
<p id="gr_B">
<input type="radio" value="2mm" />テストB
<input type="radio" value="3mm" />テストBB
</p>
<p id="gr_B2">
<input type="checkbox" value="2mm" />テストB
<input type="checkbox" value="3mm" />テストBB
</p>
<p>C-----------------------</p>
<p id="gr_C">
<input type="radio" value="2mm">テストC
<input type="radio" value="3mm"/>テストCC
</p>
<p id="gr_C2">
<input type="checkbox" value="2mm"> テストC
<input type="checkbox" value="3mm"/>テストCC
</p>
<p>-----------------------</p>
<p><input type="submit"></p>
</form>
</body>
</html>
No.2ベストアンサー
- 回答日時:
<html>
<head>
<script type="text/javascript">
window.onload=fchk2;
function fchk2(elm) {
n=[0,1,3,7][elm?elm.selectedIndex:0];
disb('s1',n&1);
disb('s2',n&2);
disb('s3',n&4);
}
function disb(obj,tf){
o=document.getElementById(obj).firstChild;
while(o){
if(o.nodeName=='INPUT') o.disabled=tf?false:true;
o=o.nextSibling;
}
}
</script>
</head>
<body>
<form id="abcd">
<select onchange='fchk2(this)'>
<option selected="selected" value="">選んでください</option>
<option value="ホンダ">ホンダをアクティブ</option>
<option value="トヨタとトヨタ">ホンダとトヨタをアクティブ</option>
<option value="日産"とホンダとトヨタ>すべてをアクティブ</option>
</select>
</p>
<div id="s1">ホンダ---------------------<br>
<input type="radio" name="a0" value="2mm" />テストA
<input type="radio" name="a0" value="3mm" />テストAA
<input type="checkbox" id="a1" value="2mm" /> テストA
<input type="checkbox" id="a2" value="3mm" /> テストAA
</div>
<div id="s2">トヨタ---------------------<br>
<input type="radio" name="b0" value="2mm" />テストB
<input type="radio" name="b0" value="3mm" />テストBB
<input type="checkbox" id="b1" value="2mm" />テストB
<input type="checkbox" id="b2" value="3mm" />テストBB
</div>
<div id="s3">日産---------------------<br>
<input type="radio" name="c0" value="2mm">テストC
<input type="radio" name="c0" value="3mm"/>テストCC
<input type="checkbox" id="c1" value="2mm"> テストC
<input type="checkbox" id="c2" value="3mm"/>テストCC
</div>
<p><input type="submit"></p>
</form>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value内に変数を入れたい
-
クリックの度に加算していくには?
-
VB.NET DateTimeの型について
-
テキストボックスに入力された...
-
【Javascript】formで取得した...
-
商品コードを入れたら自動で商...
-
フォームで入力した値を別のフ...
-
ラジオボタンと連動して文字列...
-
チェックボックスのvalueをテキ...
-
[C#]連想配列の中に配列を入れたい
-
%の計算の仕方
-
javascriptでhiddenに二次元配...
-
サイト内検索で文字化けしてい...
-
jsで、配列内の文章を改行する...
-
ホームページ上での計算につい...
-
日付選択のポップアップを今日...
-
プルダウンから移動時のフレー...
-
VBAをJavaScriptに変換したいです
-
全角の縦書きが一定文字数で改...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value内に変数を入れたい
-
複数のsubmitボタンで押された...
-
3桁区切りのカンマをつけたい...
-
VB.NET DateTimeの型について
-
javascriptでhiddenに二次元配...
-
テキストボックスに入力された...
-
eval()を使わずに数値を取得し...
-
引数に数値、文字列の混在
-
クイズ作成:15個の問題から5個...
-
sessionStorageを調べています。
-
setIntervalの間隔を途中で変更...
-
javascriptにてHTMLのhiddenエ...
-
name属性が同じフォームが複数...
-
セレクトボックスの初期選択状...
-
Pythonで会員サイトの自動ログ...
-
演算対象の数字と演算子を入力...
-
商品コードを入れたら自動で商...
-
フォームで入力した値を別のフ...
-
ラジオボタンの選択で解答・点...
おすすめ情報