jQuery チェックボックスの値を取得/設定する

目次

value値を取得する

ボタンを押した時、チェックされた項目のvalue値を取得して表示します。

選択した色

:赤 :黄 :青 

 

上記サンプルのコードです。

<p>選択した色 <span id="span3"></span></p>
<input type="checkbox" name="color3" value="red" checked />:赤
<input type="checkbox" name="color3" value="yellow" />:黄
<input type="checkbox" name="color3" value="blue" />:青
<input type="button" id="button3" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  const colors = [];

  $("#button3").click(function () {
    colors.length = 0;
    $(':checkbox[name="color3"]:checked').each(function () {
      colors.push($(this).val());
      $("#span3").text(colors);
    });
  });

</script>

2~4行目は、チェックボックスです。

:checkboxは、jQueryの拡張セレクタです。

:checkedは、チェックされている状態を表します。CSSの疑似クラスです。

eachでループ処理を行い取得した値を配列にセットしています。

 

チェックされたらvalue値を取得する

チェックされたらvalue値を取得して表示します。

選択した色

:赤 :青

 

上記サンプルのコードです。

<p>選択した色 <span id="span7"></span></p>
<div class="d1">
  <input type="checkbox" id="c1" value="red" />:赤
  <input type="checkbox" class="c2" value="blue" />:青
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

  $("#c1").click(function () {
    $("#span7").text($(this).val());
    $(".d1 > .c2").prop("checked", false);
  });
  $(".d1 > .c2").on("click", function () {
    $("#span7").text($(this).val());
    $("#c1").prop("checked", false);
  });
  
</script>

#c1は、IDセレクタです。clickはクリックされたときに実行されます。

.d1 > .c2は、親子関係を表します。.on("click"はクリックされたときに実行されます。

 

複数個にチェックを入れる

ボタンを押すと黄と青にチェックが入ります。

:赤 :黄 :青 

 

上記サンプルのコードです。

<input type="checkbox" name="color4" value="red" checked>:赤
<input type="checkbox" name="color4" value="yellow">:黄
<input type="checkbox" name="color4" value="blue">:青
<input type="button" id="button4" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

	$("#button4").click(function() {
		$('input:checkbox[name="color4"]').val(["yellow","blue"]);
	});

</script>

valは、チェックを入れます。コードにある["yellow","blue"]は配列です。

 

全てにチェックを入れる(全選択)、prop('checked',true)

ボタンを押すと全てにチェックが入ります。

:赤 :黄 :青 

 

上記サンプルのコードです。

<input type="checkbox" name="color5" value="red" checked>:赤
<input type="checkbox" name="color5" value="yellow">:黄
<input type="checkbox" name="color5" value="blue">:青
<input type="button" id="button5" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

	$("#button5").click(function() {
		$('input:checkbox[name="color5"]').prop('checked',true);
	});

</script>

prop('checked',true)でチェックを入れています。
propは、プロパティを操作するメソッドです。

 

全てのチェックを外す(全解除)、prop('checked',false)

ボタンを押すと全てのチェックが外れます。

:赤 :黄 :青 

 

上記サンプルのコードです。

<input type="checkbox" name="color6" value="red" checked>:赤
<input type="checkbox" name="color6" value="yellow">:黄
<input type="checkbox" name="color6" value="blue">:青
<input type="button" id="b6" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

	$("#b6").click(function() {
		$('input:checkbox[name="color6"]').prop('checked',false);
	});

</script>

prop('checked',false)でチェックを外しています。
propは、プロパティを操作するメソッドです。

 

チェックされたか真偽値で確認する

ボタンを押した時、チェックされていた場合、trueと表示します。

選択した色

:赤 

 

上記サンプルのコードです。

<p>選択した色 <span id="span11"></span></p>
<input type="checkbox" id="c11" value="red" checked />:赤
<input type="button" id="button11" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  $("#button11").click(function () {
    if ($("#c11").prop("checked")) {
      $("#span11").text("trueです");
    } else {
      $("#span11").text("falseです");
    }
  });
  // $("#button11").click(function () {
  //   if ($("#c11").is(':checked')) {
  //     $("#span11").text("trueです");
  //   } else {
  //     $("#span11").text("falseです");
  //   }
  // });
</script>

2行目は、チェックボックスです。
9行目は、IDセレクタとpropメソッドでチェックの状態を真偽値で判定します。チェックされていればtrue、チェックされていない場合はfalseを返します。

 

複数のセレクタで指定、OR(.c1,.c3)、AND(.c1.c2)

<input type="checkbox" class="c1 c2" value="red" />:赤
<input type="checkbox" class="c3 c4" value="blue" />:青

<input type="button" id="button2" value="ボタン" />
<input type="button" id="button3" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  $("#button2").click(function () {
    $(".c1,.c3").prop("checked", true);
  });
  $("#button3").click(function () {
    $(".c1.c2").prop("checked", false);
  });
</script>

10行目の(セレクタ1,セレクタ2)は、ORでセレクタ1またはセレクタ2を意味します。
2,3行目にチェックがつきます。区切り文字はカンマ(,)です。

13行目の(セレクタセレクタ)は、ANDでセレクタ1かつセレクタ2を意味します。
2行目のみチェックが外れます。区切り文字はありません。

 

2番目のチェックボックスにチェックする、eq(1)

<input type="checkbox" class="c1" value="red" />:赤
<input type="checkbox" class="c1" value="blue" />:青
<input type="checkbox" class="c1" value="yellow" />:黄
<input type="checkbox" class="c1" value="green" />:緑
<input type="button" id="button2" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  $("#button2").click(function () {
    $(".c1").eq(1).prop("checked", true);
    // $(".c1:eq(1)").prop("checked", true);
  });
</script>

10行目のeq(1)は、2番目を意味します。青のチェックボックがチェックされます。
11行目も10行目と同じ意味です。eqの数値は0から始まります。

 

チェックボックスで否定を使用、.not

<input type="checkbox" class="c1 c2" value="red" />:赤
<input type="checkbox" class="c1 c3" value="blue" />:青
<input type="checkbox" class="c1 c4" value="yellow" />:黄
<input type="button" id="button2" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
  $("#button2").click(function () {
    $(".c1").not(".c3").prop("checked", true);
    // $(".c1:not(.c3)").prop("checked", true);
  });
</script>

9行目のnotは、否定を意味します。
9行目は、クラスc1でクラスc3ではないものにチェックを付けます。
→1,3行目のチェックボックスがチェックされます。
10行目も9行目と同じ意味です。

 

チェックボックスを非活性にする(disabled)

<p>選択した色 <span id="span3"></span></p>
<input type="checkbox" name="color3" value="red" checked />:赤
<input type="checkbox" name="color3" value="yellow" />:黄
<input type="checkbox" name="color3" value="blue" />:青
<input type="button" id="button3" value="ボタン" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>

  $("#button3").click(function () {
    $(':checkbox[name="color3"]').each(function () {
      $(this).prop("disabled", true);
      // $(this).prop("disabled", false);
    });
  });

</script>

12行目は、2~4行目のチェックボックスを入力不可にしています。
13行目は、入力不可の状態を解除します。

関連の記事

jQuery セレクトボックスの値を取得/設定する
Query 繰り返し処理を行うサンプル(each)

△上に戻る