我需要让我页面上的所有复选框都默认为 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 中工作。
关于javascript - 如何在页面加载/提交时将复选框设置为默认 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57162065/