JavaScript で選択されたラジオボタンの値を取得する方法
JavaScript で選択されたラジオボタンの値を取得する方法
HTMLフォームでラジオボタンを使用する場合、ユーザーが選択したオプションの値を取得することが重要です。これは、フォームデータを処理したり、ユーザーの選択に基づいてダイナミックな動作をしたりするために役立ちます。
必要なもの
このチュートリアルで使用するもの:
- HTML ファイル (
index.html
) - JavaScript ファイル (
script.js
)
手順
- HTML を作成する
以下は、3 つのオプションを持つラジオボタングループを含む HTML ファイルの例です。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ラジオボタンの値を取得</title>
</head>
<body>
<h1>ラジオボタンの値を取得</h1>
<form id="myForm">
<label for="option1">オプション 1</label>
<input type="radio" id="option1" name="choice" value="option1">
<br>
<label for="option2">オプション 2</label>
<input type="radio" id="option2" name="choice" value="option2">
<br>
<label for="option3">オプション 3</label>
<input type="radio" id="option3" name="choice" value="option3">
<br>
<br>
<button type="button" onclick="getSelectedRadioButtonValue()">選択値を取得</button>
</form>
<p id="selectedValue"></p>
<script src="script.js"></script>
</body>
</html>
- JavaScript を作成する
以下は、選択されたラジオボタンの値を取得する JavaScript コードです。
function getSelectedRadioButtonValue() {
const form = document.getElementById('myForm');
const radioButton = form.querySelector('input[name="choice"]:checked');
if (radioButton) {
const selectedValue = radioButton.value;
document.getElementById('selectedValue').textContent = `選択された値: ${selectedValue}`;
} else {
document.getElementById('selectedValue').textContent = '選択された値はありません。';
}
}
このコードは次の処理を実行します。
document.getElementById('myForm')
を使用してフォーム要素を取得します。form.querySelector('input[name="choice"]:checked')
を使用して、choice
という名前を持ち、選択されているラジオボタン要素を取得します。- ラジオボタン要素が存在する場合、
radioButton.value
を使用して選択された値を取得し、document.getElementById('selectedValue')
のテキストコンテンツを更新して値を表示します。 - ラジオボタン要素が存在しない場合、
document.getElementById('selectedValue')
のテキストコンテンツを更新して、選択されていないことを示すメッセージを表示します。
実行方法
- 上記の HTML と JavaScript コードをそれぞれ
index.html
とscript.js
というファイルに保存します。 - Web ブラウザで
index.html
ファイルを開きます。 - ラジオボタンオプションのいずれかをクリックします。
- 「選択値を取得」ボタンをクリックすると、選択されたラジオボタンの値がページに表示されます。
for ループの使用
ラジオボタンが多数ある場合、for
ループを使用して効率的に選択された値を取得できます。
function getSelectedRadioButtonValue() {
const radios = document.querySelectorAll('input[name="choice"]');
for (const radio of radios) {
if (radio.checked) {
return radio.value;
}
}
return null;
}
このコードは、document.querySelectorAll('input[name="choice"]')
を使用して、choice
という名前を持つすべてのラジオボタン要素を取得します。次に、for
ループを使用して各ラジオボタン要素を反復処理し、checked
プロパティを使用して選択されているかどうかを確認します。選択されているラジオボタンが見つかったら、その value
プロパティを返します。選択されているラジオボタンが見つからない場合は、null
を返します。
このチュートリアルでは、JavaScript で選択されたラジオボタンの値を取得する方法を 2 通り説明しました。単純なフォームの場合は最初の方法で十分ですが、ラジオボタンが多数ある場合は for
ループを使用する方が効率的です。
以下は、index.html
と script.js
ファイルの完全な例です。
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ラジオボタンの値を取得</title>
</head>
<body>
<h1>ラジオボタンの値を取得</h1>
<form id="myForm">
<label for="option1">オプション 1</label>
<input type="radio" id="option1" name="choice" value="option1">
<br>
<label for="option2">オプション 2</label>
<input type="radio" id="option2" name="choice" value="option2">
<br>
<label for="option3">オプション 3</label>
<input type="radio" id="option3" name="choice" value="option3">
<br>
<br>
<button type="button" onclick="getSelectedRadioButtonValue()">選択値を取得</button>
</form>
<p id="selectedValue"></p>
<script src="script.js"></script>
</body>
</html>
script.js
function getSelectedRadioButtonValue() {
const form = document.getElementById('myForm');
const radioButton = form.querySelector('input[name="choice"]:checked');
if (radioButton) {
const selectedValue = radioButton.value;
document.getElementById('selectedValue').textContent = `選択された値: ${selectedValue}`;
} else {
document.getElementById('selectedValue').textContent = '選択された値はありません。';
}
}
このコードを index.html
と script.js
というファイルに保存し、Web ブラウザで index.html
ファイルを開くと、ラジオボタンオプションのいずれかをクリックして「選択値を取得」ボタンをクリックすると、選択されたラジオボタンの値がページに表示されます。
説明
- HTML:
- この HTML コードは、3 つのオプションを持つラジオボタングループを含むフォームを作成します。
- 各ラジオボタンには、
name
属性とvalue
属性が設定されています。 name
属性は、ラジオボタンが属するグループを識別するために使用されます。value
属性は、ラジオボタンが選択された場合に送信される値を指定します。- フォームには、選択された値を取得するためのボタンもあります。
- JavaScript:
getSelectedRadioButtonValue
関数は、選択されたラジオボタンの値を取得します。- この関数はまず、フォーム要素を取得します。
- 次に、
querySelector
メソッドを使用して、choice
という名前を持ち、選択されているラジオボタン要素を取得します。 - ラジオボタン要素が存在する場合、
value
プロパティを使用して選択された値を取得し、textContent
プロパティを使用してページに表示します。 - ラジオボタン要素が存在しない場合、ページにメッセージが表示されます。
このコードは、JavaScript で選択されたラジオボタンの値を取得する方法を示す基本的な例です。ニーズに合わせてコードを自由にカスタマイズできます。
ラジオボタンの選択値を取得するその他の方法
前述の方法に加えて、JavaScript で選択されたラジオボタンの値を取得する方法は他にもいくつかあります。以下に、いくつかの例を紹介します。
document.getElementsByName を使用する
この方法は、名前でラジオボタンのグループを取得し、その後、checked
プロパティを使用して選択されたラジオボタンを特定します。
function getSelectedRadioButtonValue() {
const radios = document.getElementsByName('choice');
for (const radio of radios) {
if (radio.checked) {
return radio.value;
}
}
return null;
}
ラベルの for 属性を使用する
この方法は、各ラジオボタンラベルの for
属性の値を使用して、対応するラジオボタン要素を取得します。
function getSelectedRadioButtonValue() {
const labels = document.querySelectorAll('label');
for (const label of labels) {
if (label.getAttribute('for') === 'option1' && label.nextElementSibling.checked) {
return 'option1';
} else if (label.getAttribute('for') === 'option2' && label.nextElementSibling.checked) {
return 'option2';
} else if (label.getAttribute('for') === 'option3' && label.nextElementSibling.checked) {
return 'option3';
}
}
return null;
}
カスタムデータ属性を使用する
この方法は、各ラジオボタン要素にカスタムデータ属性を追加し、その属性に選択された値を格納します。
<input type="radio" id="option1" name="choice" value="option1" data-selected-value="オプション 1">
<input type="radio" id="option2" name="choice" value="option2" data-selected-value="オプション 2">
<input type="radio" id="option3" name="choice" value="option3" data-selected-value="オプション 3">
function getSelectedRadioButtonValue() {
const radioButton = document.querySelector('input[name="choice"]:checked');
if (radioButton) {
return radioButton.dataset.selectedValue;
}
return null;
}
- 単純なフォーム の場合は、最初の方法が最も簡単です。
- ラジオボタンが多数ある 場合は、
for
ループを使用する方が効率的です。 - 選択された値にカスタム表示が必要 な場合は、カスタムデータ属性を使用すると便利です。
どの方法を選択する場合でも、コードがわかりやすく、読みやすいことを確認してください。
javascript html for-loop