繁体   English   中英

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

[英]How to set checkbox to default false on page load/submit?

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

我知道我可以在页面加载/提交时选择默认值为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">

…但这不会提交false或true,而是提交false或false AND 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中一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM