
とても困っているのでお力をお貸しください。
HTML側に
====================================================
<table summary="条件問題">
<tr>
<th>問題1</th>
<td>
<ul>
<li><input type="radio" name="AAAAAA" value="あああ" id="a1" onclick="mondaiChange1();"/>
<label for="a1"> あああ</label></li>
<li><input type="radio" name="AAAAAA" value="いいい" id="a2" onclick="mondaiChange1();"/>
<label for="a2"> いいい</label></li>
<li><input type="radio" name="AAAAAA" value="ううう" id="a3" onclick="mondaiChange1();"/>
<label for="a3"> ううう</label></li>
<li><input type="radio" name="AAAAAA" value="えええ" id="a4" onclick="mondaiChange1();"/>
<label for="a4"> えええ</label></li>
<li><input type="radio" name="AAAAAA" value="おおお" id="a5" onclick="mondaiChange1();"/>
<label for="a5"> おおお</label></li>
</ul>
</td>
</tr>
</table>
<div class="TableA">
<table summary="問題その2" id="TableA">
<tr>
<th>Q1</th>
<td>
<ul>
<li>
<input type="radio" value="はい" id="b1" name="BBBBBBB" />
<label for="b1"> はい</label>
</li>
<li>
<input type="radio" value="いいえ" id="b2" name="BBBBBBB" />
<label for="b2"> いいえ</label>
</li>
</ul></td>
</tr>
</table>
<div class="TableB">
<table summary="問題その2" id="TableB">
<tr>
<th>Q1</th>
<td>
<ul>
<li>
<input type="radio" value="はい" id="b1" name="BBBBBBB" />
<label for="b1"> はい</label>
</li>
<li>
<input type="radio" value="いいえ" id="b2" name="BBBBBBB" />
<label for="b2"> いいえ</label>
</li>
</ul></td>
</tr>
</table>
==========================
と記載。
includeしているjsファイル側に
==========================
function mondaiChange1(){
radio = document.getElementsByName('AAAAAA')
if(radio["a1"].checked) {
//フォーム
document.getElementById("TableA").style.display = "none";
document.getElementById("TableB").style.display = "";
}
else if(radio["a2"].checked) {
//フォーム
document.getElementById("TableA").style.display = "";
document.getElementById("TableB").style.display = "none";
}
else if(radio["a3"].checked) {
//フォーム
document.getElementById("TableA").style.display = "none";
document.getElementById("TableB").style.display = "";
}
else if(radio["a4"].checked) {
//フォーム
document.getElementById("TableA").style.display = "";
document.getElementById("TableB").style.display = "none";
}
else if(radio["a5"].checked) {
//フォーム
document.getElementById("TableA").style.display = "none";
document.getElementById("TableB").style.display = "";
}
//オンロードさせ、リロード時に選択を保持
window.onload = mondaiChange1;
}
==========================
としているのですが、これだと最初にアクセスしたとき
問題その2のTableAとTableB両方のテーブルが表示されてしまいます。
(その後ラジオボタンを選択すると希望通りの動作になります。)
//オンロードさせ、リロード時に選択を保持
window.onload = mondaiChange1;
を入れたら大丈夫というのをネットで見たのですが、どう書き換えてもうまくいきません。
希望としては
最初にアクセスしたときは問題1の回答は何も選択されてない状態で、その下には何も表示されていない。
↓
問題1の選択肢を選択した時点で初めて「問題その2」のテーブルが選択したラジオボタンによってどちらかひとつ表示される、という風にしたいのですが、教えていただけないでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
よこやりごめん。
id="b1", id="b2" が、かぶってます
id は、わらえるようなもので、かぶってはいけません。
document.getElementById("TableA").style.display = "display:none;";
は、
document.getElementById("TableA").style.display = "none";
です。
No.1
- 回答日時:
ご提示のonloadの使い方では全く役にたちません。
そのスクリプトが実行されるのは、基本的にonloadイベント後なので…
最初に表示したくなければ、その要素をCSSでdisplay:noneに設定しておけばよろしいかと。
スクリプトを無効にしているユーザだと表示できなくなってしまいますが、そもそもがスクリプトが動作しなければ成立しないようになっているので問題にはならないでしょう。
style="display:none;"
あるいは、スクリプトで非表示にしておきたい要素を非表示に設定するのでもよろしいかと。
(ご提示のコードで実行している処理内容とほぼ同じ)
このときは、『一番最初に』実行する必要があるので、その内容を
window.onload = function(){
// ここに初期設定で実行したい処理を書く
}
のようにすればできると思います。
この回答への補足
早速のご回答ありがとうございます。
一番最初に書かないといけないのですね!
早速、
============
window.onload = function(){
// 初期設定
document.getElementById("TableA").style.display = "display:none;";
document.getElementById("TableB").style.display = "display:none;";
}
============
をjsファイルの一番上に記載してみたのですが
まったく変わりません・・・・
何か書き方がおかしいのでしょうか?
document.getElementById("TableA").style.display = "none;";
document.getElementById("TableB").style.display = "none;";
にしても同じでした。
引き続き教えていただけると助かります。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascript作成してます。ラジ...
-
ラジオボタンにタブインデック...
-
ラジオボタンを使って、検索ペ...
-
フォームPOST後「戻る」時のチ...
-
ラジオボタンでの動的項目の変...
-
チェックされたラジオボタンに...
-
javascript 複数のラジオボタン...
-
Javascriptを使って動的にラジ...
-
リセットボタンでクリアできな...
-
ラジオボタンのチェックが外れ...
-
Formのラジオボタンリセット方法
-
プルダウンで選択すると、DBの...
-
return trueとreturn falseの用...
-
Selectの中身をfor文で入れる
-
javascriptでoptionタグを削除...
-
tableの任意行にfocusをあてる
-
Selectボックスの幅を自動で広...
-
sessionの値でボタンを活性・非...
-
ラジオボタンでクリックした値...
-
JavaScriptのfileオブジェクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
ラジオボタンでチェックした項...
-
フォームPOST後「戻る」時のチ...
-
ラジオボタンのチェックが外れ...
-
データベースの値を判断してラ...
-
javascript作成してます。ラジ...
-
ラジオボタンを使って、検索ペ...
-
ラジオボタンでdisabledとchecked
-
チェックされたラジオボタンに...
-
ラジオボタンにチェックを入れ...
-
(jQuery)ラジオボタン選択値を...
-
クイズの正解(○×)をテキスト...
-
radio選択をクッキーに保存させ...
-
jsでラジオボタンによって表示...
-
ボタンの無効化
-
ラジオボタンで入力フィールド...
-
Jvasvriptのlengthで個数が取得...
-
ポップアップウインドウで選択...
-
ラジオボタンでの動的項目の変...
-
VBA IE ラジオボタンに...
おすすめ情報