こちらの記事では、JavaScriptでチェックボックスの値(value)を取得する方法について解説しています。
JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
メリット
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
チェックボックスの値を取得
チェックボックスの値を取得するには、valueプロパティとcheckedプロパティの2つを使います。
valueプロパティとは、inputタグのvalue属性に指定している値を取得することができるプロパティです。
<input type="checkbox" id="sample1" value="サンプル1">
<label for="sample1">サンプル1</label> <!-- value:サンプル1 -->
checkedプロパティとは、チェックボックスの状態を「true」「false」のboolean型を返します。
<input type="checkbox" id="sample1" checked> <!-- true -->
<label for="sample1">サンプル1</label>
<input type="checkbox" id="sample2"> <!-- false -->
<label for="sample2">サンプル2</label>
trueがチェックボックスがチェックされている状態を表し、falseがチェックボックスが外れている状態を表します。この値に条件分岐を使うことで、チェックボックスにチェックが入っている時だけ値を取得するなどの処理を実装することが可能になります。
一つのチェックボックスの値を取得
下記のサンプルコードは、チェックボックスを選択するとvalueに設定されている文字列が表示させます。
実行結果
チェックボックスの値は「」です
<div>
<input type="checkbox" id="sample" value="サンプル">
<label for="sample">サンプル</label>
<p>チェックボックスの値は「<span id="sample-output"></span>」です</p>
</div>
<script>
window.addEventListener('DOMContentLoaded',function(){
const sample = document.getElementById('sample'); // ①
const sampleOutput = document.getElementById('sample-output'); // ①
sample.addEventListener('change',checkboxStatus,false); // ②
function checkboxStatus(){
if(this.checked){ // ③
sampleOutput.textContent = this.value; // ④
} else {
sampleOutput.textContent = ""; // ⑤
}
}
});
</script>
コード解説
- イベント設定・チェックボックスの要素を取得
- ①で取得した要素に対してchangeイベントを設定
- チェックボックスが選択されているかcheckedプロパティを使い条件分岐させる
- チェックボックスが選択されている場合は、valueプロパティでinputタグのvalue値を表示させる
- チェックボックスが選択されていない場合は、空文字を表示させる
【JavaScript】changeイベントの使い方について徹底解説
こちらの記事では、JavaScriptのchangeイベントについてサンプルコードを用いて分かりやすく解説しています。 【changeイベントとは】 changeイベントはイベントの中で…
複数のチェックボックスの値を取得
下記のサンプルコードは、各チェックボックスに10~40の値を設定し選択されたチェックボックスの値のみを合計し表示させます。
実行結果
合計値:0
<div id="score-box">
<input type="checkbox" id="score1" name="score" value="10">
<label for="score1">10</label>
<input type="checkbox" id="score2" name="score" value="20">
<label for="score2">20</label>
<input type="checkbox" id="score3" name="score" value="30">
<label for="score3">30</label>
<input type="checkbox" id="score4" name="score" value="40">
<label for="score4">40</label>
<p>合計値:<span id="sum-score">0</span></p>
</div>
<script>
window.addEventListener('DOMContentLoaded',function(){
const scoreBox = document.getElementById('score-box'); // ①
const score = document.getElementsByName('score'); // ①
let sumScore = document.getElementById('sum-score'); // ①
scoreBox.addEventListener('change',scoreCalc,false); // ②
function scoreCalc(){
let total = 0; // ③
for(let i = 0; i < score.length; i++){ // ④
if(score[i].checked){ // ⑤
total += Number(score[i].value); // ⑥
}
}
sumScore.textContent = total; ⑦
}
});
</script>
コード解説
- イベント設定・チェックボックス・合計値を表示させる要素を取得
- ①で取得したdivタグの要素に対してchangeイベントを設定
- 合計値を格納する変数に初期値0を代入する
- ①で取得したチェックボックスの個数分for文で繰り返す
- チェックボックスが選択されているか、一つずつ確認する
- チェックボックスが選択されている値(value)を変数totalに足していく
- 合計値を表示させる