为什么 html 复选框只传输一个“on”值?

新手上路,请多包涵

我刚刚开始学习互联网编程。

在玩了复选框之后,我发现了一个艰难的方法,只有当复选框被选中时,它才会传输一个“on”值。

为什么不也发送一个“关闭”值?

原文由 Google 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 499
2 个回答

我认为这一定是为了传输的简洁。如果您的页面上有数千个复选框,则每个对服务器的请求都是“通过网络”发送的,您会发现告诉服务器“此框已关闭”的数据量实际上相当大(参见正如您必须如何发送每个复选框元素的名称——这可能会增加数兆字节的信息——这会减慢整个用户体验和互联网速度)。

而事实上你 知道 它是关闭的,因为它没有被发送——所以没有必要发送它。

原文由 Alex C 发布,翻译遵循 CC BY-SA 3.0 许可协议

可以有许多具有相同元素名称的复选框:

 <form action="order.php" method="get">

  <p>
    <label><input type="checkbox" name="toppings" value="olives"/>Olives</label>
    <label><input type="checkbox" name="toppings" value="mushrooms"/>Mushrooms</label>
    <label><input type="checkbox" name="toppings" value="onions"/>Onions</label>
    <label><input type="checkbox" name="toppings" value="eggplant"/>Eggplant</label>
    etc...
  </p>

  <p><input type="submit" value="Submit"/></p>

</form>

该 url 稍后将仅包含选中的值,并且类似于:

 order.php?toppings=mushrooms&toppings=onions&toppings=eggplant

如果还发送了“关闭”值,这将不会很好地工作。

原文由 Udi 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题