JavaScriptでラジオボタンを選択したり、値やイベントを取得する方法をサンプルを交えてご紹介します。
Document Object Model (DOM)とは、W3Cから勧告されているHTML文書やXML文書をアプリケーションから利用するためのAPIである。
Elementオブジェクトのプロパティ、メソッド及びイベントもサポートする。
JavaScript のラジオボタン・オブジェクトは、以下に示すプロパティを持つ。
プロパティ | 説明 |
---|---|
alt | input 要素の alt 属性 |
checked | ラジオボタンが現在チェックされているかどうか |
defaultChecked | ラジオボタンが初期状態でチェックされていたかどうか |
disabled | ラジオボタンが無効かどうか |
form | ラジオボタンを含むフォーム要素 |
name | input 要素の name 属性 |
type | フォームのタイプ |
value | input 要素の value 属性 |
radio オブジェクトの alt プロパティは input 要素の alt 属性の値であり、ラジオボタンの代替テキストを表わす。
radio オブジェクトの checked プロパティは input 要素の checked 属性の値であり、ラジオボタンの選択状態を表わす。
checked プロパティの使用例を次に示す。
var checked = document.getElementById("male").checked
if (checked) {
// 男性が選択されたときの処理
}
radio オブジェクトの defaultChecked プロパティは、ラジオボタンの初期選択状態を表わす。最初の選択状態なので、ラジオボタンの選択状態を変えても変化しない。
radio オブジェクトの disabled プロパティは input 要素に disabled 属性が指定されているかどうかを表わす。
ラジオボタンを含むフォーム要素の参照
radio オブジェクトの name プロパティは input 要素の name 属性の値であり、ラジオボタンの名前を表わす。
フォームのタイプ
radio オブジェクトの value プロパティは input 要素の value 属性の値であり、ラジオボタンの値を表わす。
var value = document.getElementById("male").value
<input type="radio" name="gender" value="male">男性</input>
<input type="radio" name="gender" value="female">女性</input>
JavaScript のラジオボタン・オブジェクトは、以下に示すイベントを受け取る。
イベント | 説明 |
---|---|
change | ラジオボタンの選択が変更された |
ラジオボタンの選択状態が変更されたときに、onchange イベントが発生する。
ラジオボタンのonchangeイベントでラジオボタンの選択が変更されたことがわかる。
<fieldset>
<legend>性別</legend>
<input type="radio" name="gender" value="male" onchange="radio()" checked>男性</input>
<input type="radio" name="gender" value="female" onchange="radio()">女性</input>
</fieldset>
<script>
function radio() {
// ラジオボタンが変更されたときの処理
}
</script>
inputタグのonchange属性でイベント制御を行う方法には、次のメリットがある。
プロパティ | 男性 | 女性 |
---|---|---|
checked | ||
defaultChecked | ||
disabled | ||
name | ||
value |
ウェブページを高速に表示するためには、初期レンダリング(ページに遷移したときに最初に表示される画面領域の描画)に不必要なJavaScriptの読み込みや実行は後回しにした方がよい。
ラジオボタンが変更されたときの処理は初期レンダリングに関係ないため、JavaScriptの読み込みや実行のためにHTMLの読み込みを中断させる必要はない。そのため、</body>
タグの直前に配置するか、script要素にdefer属性を指定する方がよい。
Web Hypertext Application Technology Working Group (2022) "Events" HTML Living Standard