現在練習用のサイトを作成しておりまして、javascriptを使っているのですが非効率的で困っています。もっと効率良くかけるのではないかと考えているのですが、ちゃんと動くコードにするだけでとても時間がかかってしまいました。
実現したい事はラジオボタンでAタイプを選択した状態の場合、セレクトボックスの結果を<p id="a_type">に出力してラジオボタンでBタイプを選択した場合セレクトボックスの結果を<p id="b_type">に出力するとゆうことです。
HTML
1<!--ここでTYPEを選択します--> 2<form name="form1" action=""> 3 <input type="radio" id="radio1" name="page" required checked onchange="selected_page();">A-TYPE 4 <input type="radio" id="radio2" name="page" onchange="selected_page();">B-TYPE 5</form> 6 7<!--上記のTYPEに表示したい項目を選択します--> 8<form name="form2" action=""> 9 <select id="Select1" onchange="selected_page();"> 10 <option>0ページ</option> 11 <option>1ページ</option> 12 <option>2ページ</option> 13 <option>3ページ</option> 14 <option>4ページ</option> 15 </select> 16</form> 17 18<!--ここに結果を表示させます--> 19<p id="a_type">0ページ</p> 20<p id="b_type">0ページ</p>
CSS
1#b_type { 2 display: none; 3}
javascript
1function selected_page() { 2 let check1 = document.getElementById("radio1").checked; 3 let check2 = document.getElementById("radio2").checked; 4 5 if (check1 == true) { 6 let sel = "a_type"; 7 let target = document.getElementById(sel); 8 target.style.display = "block" 9 document.getElementById("b_type").style.display = "none" 10 let selindex = document.getElementById("Select1").selectedIndex; 11 switch (selindex) { 12 default: 13 target.innerHTML = "0ページ"; 14 break; 15 case 1: 16 target.innerHTML = "1ページ"; 17 break; 18 case 2: 19 target.innerHTML = "2ページ"; 20 break; 21 case 3: 22 target.innerHTML = "3ページ"; 23 break; 24 case 4: 25 target.innerHTML = "4ページ"; 26 break; 27 } 28 } 29 else if (check2 == true) { 30 let sel = "b_type"; 31 let target = document.getElementById(sel); 32 target.style.display = "block" 33 document.getElementById("a_type").style.display = "none" 34 let selindex = document.getElementById("Select1").selectedIndex; 35 switch (selindex) { 36 default: 37 target.innerHTML = "0ページ"; 38 break; 39 case 1: 40 target.innerHTML = "1ページ"; 41 break; 42 case 2: 43 target.innerHTML = "2ページ"; 44 break; 45 case 3: 46 target.innerHTML = "3ページ"; 47 break; 48 case 4: 49 target.innerHTML = "4ページ"; 50 break; 51 } 52 } 53}
javascriptですが、内容が同じswitch文を二回使ってしまっていたり色々と問題がある気がしています..
お詳しい方だったらどのような感じにするのか教えていただけないでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/22 03:38