【JavaScript】フォーム部品操作(selectedIndex, length)
JavaScriptでのフォーム部品操作に関する解説
セレクト部品のlengthプロパティ
window.document.form.select.length
は、セレクト部品(<select>
要素)に含まれる選択肢(<option>
要素)の数を取得するためのプロパティです。このプロパティを使用することで、フォーム内のセレクト部品に何個の選択肢が含まれているかを簡単に調べることができます。
以下は具体的な使用例です。
// HTML例
<form name="exampleForm">
<select name="exampleSelect">
<option value="1">選択肢1</option>
<option value="2">選択肢2</option>
<option value="3">選択肢3</option>
</select>
</form>
// JavaScript例
const selectElement = document.exampleForm.exampleSelect;
console.log(selectElement.length); // 出力: 3
このプロパティは読み取り専用であり、セレクト部品内の選択肢の追加や削除によって動的に値が変化します。
セレクト部品のselectedIndexプロパティ
window.document.form.select.selectedIndex
は、セレクト部品で現在選択されている選択肢のインデックスを返します。インデックスは0から始まり、選択肢が選ばれていない場合は-1
が返されます。
以下は具体的な例です。
// HTML例
<form name="exampleForm">
<select name="exampleSelect">
<option value="1">選択肢1</option>
<option value="2" selected>選択肢2</option>
<option value="3">選択肢3</option>
</select>
</form>
// JavaScript例
const selectElement = document.exampleForm.exampleSelect;
console.log(selectElement.selectedIndex); // 出力: 1
また、selectedIndex
プロパティを設定することで、セレクト部品の選択状態をプログラムから変更することも可能です。
// 選択を3番目(インデックス2)に変更
selectElement.selectedIndex = 2;
console.log(selectElement.selectedIndex); // 出力: 2
セレクト部品操作の実例
以下は、length
とselectedIndex
を活用した実用的なサンプルです。
// HTML例
<form name="exampleForm">
<select name="exampleSelect">
<option value="1">選択肢1</option>
<option value="2">選択肢2</option>
<option value="3">選択肢3</option>
</select>
<button type="button" id="addOption">選択肢を追加</button>
<button type="button" id="showSelected">選択中を表示</button>
</form>
// JavaScript例
const selectElement = document.exampleForm.exampleSelect;
// 選択肢を追加
document.getElementById('addOption').addEventListener('click', () => {
const newOption = document.createElement('option');
newOption.value = String(selectElement.length + 1);
newOption.textContent = `選択肢${selectElement.length + 1}`;
selectElement.appendChild(newOption);
console.log(`新しい選択肢を追加: ${newOption.textContent}`);
});
// 現在選択中の選択肢を表示
document.getElementById('showSelected').addEventListener('click', () => {
const selectedIndex = selectElement.selectedIndex;
if (selectedIndex === -1) {
console.log('選択肢が選ばれていません。');
} else {
console.log(`現在選択中: ${selectElement.options[selectedIndex].textContent}`);
}
});
この例では、length
を利用して動的に選択肢を追加し、selectedIndex
で現在の選択状態を表示しています。
これらのプロパティを活用することで、フォーム部品の動的な操作が簡単に行えます。ぜひ試してみてください。