チェックボックスの値は、チェックされていない場合は送信されません。
jQueryで確認したい場合は、常に次のものを使用します。
var isChecked = $('#checkbox').prop('checked');
または
var isChecked = $('#checkbox').is(':checked');
JavaScriptでは、属性とプロパティの違いを理解する必要があります。checked
プロパティと属性の両方です。ただし、チェックボックスのプロパティが変更されたときに、チェックされた属性が常に更新されるとは限りません(一部のブラウザでは更新されます)。属性は、DOMによって解析されたHTMLマークアップの値と考えてください。プロパティは、DOMのチェックボックス要素の実際のメンバーであり、UIでチェックボックスがオンになっているかどうかに応じて常に変化します。checked
checked
JavaScriptを必要とせずに絶対確実な方法を試したい場合は、非表示の入力と同じ名前のチェックボックスをそれぞれ適切な「チェック済み」状態の値でレンダリングすることにより、「MVC」の方法で試すことができます。
<input type="hidden" name="mybox" value="false" />
<input type="checkbox" name="mybox" value="true" />
フォームを送信するときに、値が「true」の値がリクエストに見つからない場合mybox
、チェックボックスはオンになりませんでした。詳しくはこちらをご覧ください。