###前提・実現したいこと
ラジオボタンで入力した値を使って配列に格納したデータを探し出し表示したい。
###発生している問題・エラーメッセージ
ラジオボタンを選択し、結果を出力しようとしても元のページに戻ってしまう。
また、以下のエラーメッセージが表示される。
Uncaught TypeError: Cannot read property 'length' of undefined
###該当のソースコード
HTML
1 <form name="form1" action=""> 2 <input id="Radio11" name="RadioGroup1" type="radio" onchange="onRadioButtonChange();" /> 3 <label for="Radio11">選択肢 1</label><br/> 4 <input id="Radio12" name="RadioGroup1" type="radio" onchange="onRadioButtonChange();" /> 5 <label for="Radio12">選択肢 2</label><br /> 6 <input id="Radio13" name="RadioGroup1" type="radio" onchange="onRadioButtonChange();" /> 7 <label for="Radio13">選択肢 3</label><br /> 8 </form> 9 <br /> 10 <form name="form2" action=""> 11 <input id="Radio21" name="RadioGroup1" type="radio" onchange="onRadioButtonChange();" /> 12 <label for="Radio21">選択肢 1</label><br/> 13 <input id="Radio22" name="RadioGroup1" type="radio" onchange="onRadioButtonChange();" /> 14 <label for="Radio22">選択肢 2</label><br /> 15 <input id="Radio23" name="RadioGroup1" type="radio" onchange="onRadioButtonChange();" /> 16 <label for="Radio23">選択肢 3</label><br /> 17 </form> 18 <br /> 19 <form name="form00"> 20 <input type="submit" value="結果表示" onClick="JavaScript:searchDisp();"> 21 </form>
Javascript
1var a, b, c, sword; 2 3function onRadioButtonChange() { 4 check11 = document.form1.Radio11.checked; 5 check12 = document.form1.Radio12.checked; 6 check13 = document.form1.Radio13.checked; 7 8 check21 = document.form2.Radio21.checked; 9 check22 = document.form2.Radio22.checked; 10 check23 = document.form2.Radio23.checked; 11 12 if (check11 == true) { 13 a = 1; 14 } else if (check12 == true) { 15 a = 2; 16 } else if (check13 == true) { 17 a = 3; 18 } 19 20 if (check21 == true) { 21 b = 1; 22 } else if (check22 == true) { 23 b = 2; 24 } else if (check23 == true) { 25 b = 3; 26 } 27 28 var sword = a * 10 + b; 29} 30 31db = new Array; 32 33db[11] = "データ11"; 34db[12] = "データ12"; 35db[13] = "データ13"; 36db[21] = "データ21"; 37db[22] = "データ22"; 38db[23] = "データ23"; 39db[31] = "データ31"; 40db[32] = "データ32"; 41db[33] = "データ33"; 42 43function searchDisp() { 44 var swordLength = sword.length; 45 if (swordLength < 2) { alert("選択されていない項目があります。"); exit; } 46 47 document.write("<html><head><title>結果</title></head>"); 48 document.write("<body><div align='center'>"); 49 document.write("<a href='JavaScript:history.back()'>もどる</a><br><br>結果</div><hr>\n"); 50 document.write("<div align='center'><table border='1'>"); 51 52 for (var i = 11; i < 33; i++) { 53 if (i == sword){ 54 document.write("<tr><td>"); 55 document.write(db[sword]); 56 document.write("</td></tr><table></div></body></html>"); 57 break; 58 } 59 } 60}
正直、自分のやりたいことがこのような形で実現できるのか分からないほどの初心者で申し訳ありません。
どうぞよろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/26 13:19
退会済みユーザー
2016/10/26 13:29
2016/10/27 11:54