
| ホームページ | Pirikaで化学 | ブログ | 業務案内 | お問い合わせ |
| Pirikaで化学トップ | 情報化学+教育 | HSP | 化学全般 |
| 情報化学+教育トップ | 情報化学 | MAGICIAN | MOOC | プログラミング |
| プログラミング・トップ | 親子で | JavaScript演習 | 化学系 | HSPiP用 |
2021.2.11
フォームでセレクターの中身を設定する固定式では無く、ダイナミックに中身を入れ替える方法を覚えておきましょう。
最初のセレクターが選ばれると、2番目のセレクターの中身を入れ替えます。
<select name="genre" id="genre" onchange="createMenu(this.value)">
<option disabled selected>タイプを選択してください</option>
<option value="Alkane">アルカン</option>
<option value="Alkene">アルケン</option>
<option value="Alkyne">アルキン</option>
</select><br>
<select name="compList" id="compList" disabled>
<option disabled selected>化合物を選択してください</option>
</select>最初のセレクターの値を変更すると、createMenu関数へ飛びます。
2番目のセレクターはdisabledが指定さfれているので、選択する事ができません。
const compMenu =
{
"Alkane": ["ヘキサン", "ヘプタン", "オクタン", "ノナン"],
"Alkene": ["エチレン", "プロピレン", "ブチレン"],
"Alkyne": ["アセチレン", "プロピン", "ブチン"]
};セレクターに設定するアイテムはこのように準備しておきます。
let option = document.createElement('option');
option.innerHTML = '化合物を選択してください';
option.defaultSelected = true;
option.disabled = true;
compList.appendChild(option); 後は、optionオブジェクトを作成して、innerHTMLを設定した後、appendChildとセレクターに追加していきます。
スクリプトの全体は次のようになります。
<SCRIPT language="JavaScript"><!--
const compMenu =
{
"Alkane": ["ヘキサン", "ヘプタン", "オクタン", "ノナン"],
"Alkene": ["エチレン", "プロピレン", "ブチレン"],
"Alkyne": ["アセチレン", "プロピン", "ブチン"]
};
function createMenu(selectGenre){
let compList = document.getElementById('compList');
compList.disabled = false;
compList.innerHTML = '';
let option = document.createElement('option');
option.innerHTML = '化合物を選択してください';
option.defaultSelected = true;
option.disabled = true;
compList.appendChild(option);
compMenu[selectGenre].forEach( menu => {
let option = document.createElement('option');
option.innerHTML = menu;
compList.appendChild(option);
});
}
--></SCRIPT>Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください) メールの件名は[pirika]で始めてください。