POST 未选中的 HTML 复选框

新手上路,请多包涵

我有很多默认选中的复选框。我的用户可能会取消选中一些(如果有的话)复选框,而让其余的保持选中状态。

有什么方法可以使表单 POST 选中的复选框,而不是 选中的复选框?

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

阅读 415
2 个回答

为具有不同 ID 的复选框添加隐藏输入:

 <input id='testName' type='checkbox' value='Yes' name='testName'>
<input id='testNameHidden' type='hidden' value='No' name='testName'>

提交表单前,根据勾选的条件禁用隐藏输入:

 form.addEventListener('submit', () => {
    if(document.getElementById("testName").checked) {
        document.getElementById('testNameHidden').disabled = true;
    }
}

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

到目前为止,我最喜欢的解决方案是放置一个与可能未选中的复选框同名的隐藏输入。我认为它的工作原理是,如果未选中该复选框,隐藏输入仍然成功并发送到服务器,但如果选中该复选框,它将覆盖它之前的隐藏输入。这样您就不必跟踪已发布数据中的哪些值预计来自复选框。

 <form>
  <input type='hidden' value='0' name='selfdestruct'>
  <input type='checkbox' value='1' name='selfdestruct'>
</form>

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

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