为什么我们不能POST未经检查的复选框?

Rak*_*ale 2 html checkbox post

我有一个包含大约80个复选框的表单,默认情况下会检查所有这些复选框.用户只会取消选中不需要的项目,因此我在查找未选中的复选框元素POST.但是,POST仅保留已检查值的值.

经过一番搜索,我找到了适合我情况的解决方法: 这个问题

解决方法:

<form>
  <input type='hidden' value='0' name='selfdestruct'>
  <input type='checkbox' value='1' name='selfdestruct'>
</form>
Run Code Online (Sandbox Code Playgroud)

使用这个我能够获得隐藏字段的值,因此我的目的得以实现.

但重要的问题是为什么这不是默认功能?我找到了第一次听起来很奇怪的任何技术问题的正当理由.但为此(不能发布未经检查的复选框)我仍然很想知道原因.

如果有人能够阐明这个话题,我将不胜感激.

bjf*_*her 5

W3C 解释说,只提交"成功"的控件.

成功的控制对于提交是"有效的".

  • 所有"打开"复选框都可能成功.

类似地,对于单选按钮,只有"开"单选按钮是"成功的",对于菜单,只有所选的选项是"成功的".