知っておきたい!jQueryでチェックボックスの状態を取得する4つの方法
jQueryでチェックボックスの状態に応じて処理を行う方法
jQueryでは、if
文とprop()
メソッドを使うことで、チェックボックスの状態に応じて処理を実行できます。
<input type="checkbox" id="my-checkbox">
<p id="message"></p>
<script>
$(document).ready(function() {
// チェックボックスの状態を取得
var isChecked = $('#my-checkbox').prop('checked');
// チェックボックスがオンの場合
if (isChecked) {
$('#message').text('チェックボックスがオンです');
} else {
$('#message').text('チェックボックスがオフです');
}
});
</script>
解説
$('#my-checkbox').prop('checked')
:チェックボックスのchecked
プロパティを取得します。if (isChecked)
:isChecked
変数の値がtrue
の場合(チェックボックスがオンの場合)、if
文内の処理を実行します。else
:if
文の条件が満たされない場合(チェックボックスがオフの場合)、else
文内の処理を実行します。
応用例
- チェックボックスがオンになった時に、別の要素を表示する。
- チェックボックスの状態に応じて、フォーム送信時の処理を変更する。
補足
- 上記のサンプルコードでは、
$(document).ready(function() {
内に処理を記述しています。これは、ページ読み込み後に処理を実行するためです。 - チェックボックスの状態は、
change
イベントで取得することもできます。
- jQueryには、チェックボックスの状態を操作する様々なメソッドがあります。詳細は、jQueryの公式ドキュメントを参照してください。
<input type="checkbox" id="my-checkbox">
<p id="message"></p>
<script>
$(document).ready(function() {
// チェックボックスの状態を取得
var isChecked = $('#my-checkbox').prop('checked');
// チェックボックスがオンの場合
if (isChecked) {
$('#message').text('チェックボックスがオンです');
} else {
$('#message').text('チェックボックスがオフです');
}
// チェックボックスの状態変化時の処理
$('#my-checkbox').change(function() {
var isChecked = $(this).prop('checked');
if (isChecked) {
$('#message').text('チェックボックスがオンになりました');
} else {
$('#message').text('チェックボックスがオフになりました');
}
});
});
</script>
<input type="checkbox" id="my-checkbox">
<input type="text" id="my-input">
<script>
$(document).ready(function() {
// チェックボックスの状態を取得
var isChecked = $('#my-checkbox').prop('checked');
// チェックボックスがオフの場合
if (!isChecked) {
$('#my-input').prop('disabled', true);
} else {
$('#my-input').prop('disabled', false);
}
// チェックボックスの状態変化時の処理
$('#my-checkbox').change(function() {
var isChecked = $(this).prop('checked');
if (isChecked) {
$('#my-input').prop('disabled', false);
} else {
$('#my-input').prop('disabled', true);
}
});
});
</script>
<input type="checkbox" id="my-checkbox">
<form action="/submit" method="post">
<input type="text" name="name">
<input type="submit" value="送信">
</form>
<script>
$(document).ready(function() {
// フォーム送信時の処理
$('form').submit(function(e) {
// チェックボックスの状態を取得
var isChecked = $('#my-checkbox').prop('checked');
// チェックボックスがオンの場合
if (isChecked) {
// 追加処理
} else {
// 別の処理
}
// フォーム送信を続行
return true;
});
});
</script>
これらのサンプルコードを参考に、jQueryを使ってチェックボックスの状態に応じて処理を実行してみてください。
jQueryでチェックボックスの状態を取得する他の方法
if ($('#my-checkbox').is(':checked')) {
// チェックボックスがオンの場合の処理
} else {
// チェックボックスがオフの場合の処理
}
attr()メソッドを使う
if ($('#my-checkbox').attr('checked') === 'checked') {
// チェックボックスがオンの場合の処理
} else {
// チェックボックスがオフの場合の処理
}
if ($('#my-checkbox').val() === 'on') {
// チェックボックスがオンの場合の処理
} else {
// チェックボックスがオフの場合の処理
}
if ($('#my-checkbox').prop('checked')) {
// チェックボックスがオンの場合の処理
} else {
// チェックボックスがオフの場合の処理
}
これらの方法は、prop()
メソッドを使う方法よりも簡潔に記述できますが、ブラウザの互換性によっては動作しない可能性があります。
jquery checkbox if-statement