ホームページ | 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]で始めてください。