Javascript 如何在页面加载/提交时将复选框设置为默认值false?

Javascript 如何在页面加载/提交时将复选框设置为默认值false?,javascript,html,css,Javascript,Html,Css,我需要将页面上的所有复选框设置为默认值false,以便API调用将该值设置为false 我知道我可能会在页面加载/提交时默认选择带有假值的隐藏复选框,但这似乎不是一种非常整洁的方式。我想知道是否还有其他人更清楚 function formCheck(){ var checkBox = document.getElementById('mobKinder'); if (checkBox.checked == true){

我需要将页面上的所有复选框设置为默认值false,以便API调用将该值设置为false

我知道我可能会在页面加载/提交时默认选择带有假值的隐藏复选框,但这似乎不是一种非常整洁的方式。我想知道是否还有其他人更清楚

function formCheck(){

              var checkBox = document.getElementById('mobKinder');
              if (checkBox.checked == true){
                  document.getElementById("mobkinder") = true;
              }else{
                  document.getElementById("mobKinder") = false;
              }                 
          }

但是,我使用了这段代码,因为API只接受带有选中输入的复选框。如果框为空,但未明确声明为false,则它将保持为空。我需要某种方法从空检查中提交假值。

未选中的复选框不是成功的控件,因此根本不发送值

PHP用户普遍采用的一种方法是使用不同的值和相同的名称定义隐藏的输入:

<input type="hidden" name="x" value="false">
<input type="checkbox" name="x" value="true">

…但这并不是提交假或真,而是提交假或假和真。如果您使用的表单解析器丢弃具有重复名称的值,这是很好的,但通常不是一个安全的解决方案

您可以使用单选按钮而不是复选框作为UI:

<label><input type="radio" name="x" value="false"> Off</label>
<label><input type="radio" name="x" value="true"> On</label>
关闭
在…上
…但这涉及到更改UI

您可以完全删除复选框中的名称,并使用JavaScript更改隐藏输入的值……但这会引入对JavaScript的依赖


好的解决方案是更改API,使其与复选框一起工作,因为复选框设计为在HTML中工作。

您接受JQuery吗?是的,我可以接受,如果它更简单,只是在复选框HTMLS中不包含checked属性,那么您想将一个复选框(mobkinder)设置为另一个复选框(mobkinder)的值吗?当您只有一个不同的字母时,会非常混乱。@AvcS-这将不会为复选框发送任何数据,并且不会为false。是的,我已经意识到这种解决方案,但对于看起来很简单的工作来说,它似乎太长太冗长了。如果什么也没发生,我就只好做了this@alfierowett-HTML复选框设计为以特定方式工作(允许您执行一些非常强大的操作)。你希望他们以完全不同的方式工作。那可不容易。