前提・実現したいこと
科目登録のシステムを作成しているのですが、同一の科目を選択している場合、アラートを出したいと考えているのですが、substrを使った判定がうまくいきませんでした。
(例: 0130 2年現代文Ba・月3水1と0131 2年現代文Bb・月4水2を選択している際に、同じ2年現代文を選択しているため、アラートを出したい。)
発生している問題・エラーメッセージ
同一科目を選択した際に、科目番号をsubstrを使用して抜き出したいが、そもそもそのためのfor文が動かない。
該当のソースコード
javascript
1function submit() { 2 var number = 1; 3 var check = 1; 4 var input = document.getElementById("sub").value; 5 var output = document.getElementById(number).innerHTML; 6 for (number = 1; output != ""; number++) { 7 output = document.getElementById(number + 1).innerHTML; 8 9 } 10 for (check = 1; check <= 13; check++) { 11 console.log(check); 12 if (output.substr(0, 3) == input.substr(0, 3)) { 13 alert(同じ科目は登録しないでください); 14 exit; 15 16 } 17 } 18 document.getElementById(number).innerHTML = input;
HTML
1<select id="sub"> 2 <option value="notselect"></option> 3 <option value="01302年現代文Ba・月3水1">0130 2年現代文Ba・月3水1</option> 4 <option value="01312年現代文Bb・月4水2">0131 2年現代文Bb・月4水2</option> 5 <option value="01322年現代文Bc・月4金1">0132 2年現代文Bc・月4金1</option> 6 <option value="01332年現代文Bd・火2木2">0133 2年現代文Bd・火2木2</option> 7 <option value="01342年現代文Be・火4木2">0134 2年現代文Be・火4木2</option> 8 <option value="01352年現代文Bf・水1木4">0135 2年現代文Bf・水1木4</option> 9 <option value="01362年現代文Bg・水2金1">0136 2年現代文Bg・水2金1</option> 10<button onclick="submit()">追加</button> 11<table border="1" id="sublist"> 12 <tr> 13 <th>科目リスト</th> 14 </tr> 15 <tr> 16 <td> 17 <div id=1></div> 18 </td> 19 </tr> 20 <tr> 21 <td> 22 <div id=2></div> 23 </td> 24 </tr> 25 <tr> 26 <td> 27 <div id=3></div> 28 </td> 29 </tr>
補足情報
substrの式自体はうまく動きました。
また、上のselectの中にある選択肢は一部を抜粋したもので、実際はさらに選択肢があります。なので、最大13の選択肢の中から選ぶようにしたいと考えています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/20 06:40
退会済みユーザー
2021/03/20 07:16
2021/03/20 08:09 編集
退会済みユーザー
2021/03/20 08:59
2021/03/20 11:26