前提・実現したいこと
selectボックスの中身を動的に変更する仕組みをjsで実装しようとしていました。
genreボックスにて選択すると、createTagが呼び出されるのですが、そのcreateTag関数がうまく起動しません。
発生している問題・エラーメッセージ
Uncaught ReferenceError: createTag is not defined at HTMLSelectElement.onchange
該当のソースコード
Javascript
1<script type="text/javascript"> 2 window.onload = function() { 3 const taglist = { 4 "english": ["ネットワーク", "IT基礎", "プログラミング言語"], 5 "word": ["ネットワーク", "IT基礎", "フロントエンド"], 6 "syntax": ["HTML","SQL", "Java", "PHP"] 7 }; 8 function createTag(selectGenre) { 9 let tags = document.getElementById('tag'); 10 tags.disabled = false; 11 tags.innerHTML = ''; 12 let option = document.createElement('option'); 13 option.innerHTML('タグを選択してください'); 14 option.defaultSelected = true; 15 option.disabled = true; 16 menuList.appendChild(option); 17 18 tagList[selectGenre].forEach( tag => { 19 let option = document.createElement('option'); 20 option.innerHTML = tag; 21 option.setAttribute('value', '' + tag + ''); 22 tags.appendChild(option); 23 }); 24 } 25} 26</script>
PHP
1<div class="input-area"> 2 <label for="genre">ジャンル</label> 3 <select name="genre" onchange="createTag(this.value)"> 4 <option disabled selected>ジャンルを選択してください</option> 5 <option value="english">英単語</option> 6 <option value="word">IT用語</option> 7 <option value="syntax">書式・文法・構文</option> 8 </select> 9</div> 10<div class="input-area"> 11 <label for="tag">タグ</label> 12 <select name="tag" id="tag" disabled> 13 <option disabled selected>タグを選択してください</option> 14 </select> 15</div>
試したこと
createTagなどスペルミスのチェック、jQueryなど他のスクリプトによる干渉がないかチェックを行いました。
補足情報(FW/ツールのバージョンなど)
vscode
PHP
xampp
回答1件
あなたの回答
tips
プレビュー