当前位置: 首页 > 面试题库 >

未选中的复选框返回空值

傅嘉悦
2023-03-14
问题内容

我有一组复选框,这些复选框在选中时将值传递为1,否则将值传递为0。但是,不是将未选中的复选框的值发送为“ 0”,而是发送的值为“ NULL”。

我在下面的JS代码中应将值相应地设置为0/1,但是仍然将该值作为NULL发送。有什么方法可以确保在未选中复选框的情况下传递的值为0?

$('#cb1, #cb2, #cb3, #cb4').on('click', function ()
    $(this).val(this.checked ? 1 : 0);
});

更新 这是我的html:

<input type="checkbox" name="cb1" id="cb1" value="1" checked />
<input type="checkbox" name="cb2" id="cb2" value="1" checked />
<input type="checkbox" name="cb3" id="cb3" value="1" checked />
<input type="checkbox" name="cb4" id="cb4" value="1" checked />

默认情况下,它们都被选中。

如果未选中其中之一,则MySQL报告以下错误:0SQLSTATE [23000]:违反完整性约束:1048列’ColumnName’不能为null。

这是因为将列设置为不设置为Null。即使我将默认值设置为0,但一旦单击“提交”按钮,我仍然会收到错误消息。我尝试删除Not
NULL属性,但是与其在数据库中输入的值为NULL而不是将值预填充为0。


问题答案:

如果未选中该复选框,则不会发送该复选框,因此如果未选中该复选框,则将其值设置为0将无济于事-它将始终返回NULL。

有两种方法可以轻松解决此问题:

1)假设PHP参数中的NULL表示未选中该复选框。如果该复选框并不总是存在于页面上,则可能有问题。听起来,复选框的数量是可变的,所以这可能行不通。

2)添加一个与复选框名称相同的隐藏输入,复选框 值为0 。如果未选中该复选框,则将使用隐藏字段值;如果选中,则将使用该复选框值。

<input type="hidden" name="checkbox_1" value="0">
<input type="checkbox" name="checkbox_1" value="1">

注意:如果您的姓名采用数组形式(即,其中带有方括号),则此方法将不起作用,因为隐藏字段也将增加数组计数。



 类似资料:
  • app.py reg_account.html 错误: 我想让的结果在中的复选框未选中时返回False,但我不明白为什么当我勾选了该复选框时,结果可以存储到数据库中?我试着调试了几次,但还是找不到一个可能的解决方案,所以有没有人可以帮忙?

  • tbody和thead中的复选框使表呈现得很好。我可以在DataTable init外部编写简单的onChange函数,但它只检测表的可见页上选中或未选中的复选框。 如何或在哪里可以编写一个函数,当一个复选框被更改时会触发,然后返回表中被选中的复选框总数?

  • 问题内容: 我有一堆默认情况下处于选中状态的复选框。我的用户可能会取消选中某些复选框(如果有),而其余复选框保持选中状态。 有没有什么办法让表单POST所复选框 不 检查,而不是的那些 被 选中? 问题答案: 为具有不同ID的复选框添加隐藏的输入: 提交表单之前,请根据检查的条件禁用隐藏的输入:

  • 我现在被困在这个问题上。我想如果复选框被选中,它应该返回一个值,但是当您将public更改为int时,您会得到一个错误。它似乎只对void有效,void不会返回任何东西。有办法做到这一点吗?

  • 我试图创建一个表单,该表单顶部有一个复选框,当用户选中该复选框时,它会选择其他特定的复选框,但不是所有复选框。我很难通过反复试验或搜索找到答案。我唯一能找到的就是“全选”选项。不是我想要的。 理想情况下,当用户选中“管理包”旁边的复选框时,我想要“Chrome外观组”和“远程启动” 下面是代码和我在这方面的基本尝试,但它不起作用。提前谢谢。 超文本标记语言: Javascript 我不知道这个Ja

  • 问题内容: 我有如下形式: 当我选中所有复选框并发布表单时,结果如下所示: 然后我取消选中第二个复选框并发布表单,结果是这样的: 当我取消选中第二个复选框时,是否有可能得到如下所示的结果: 有想法吗? 问题答案: 第一种方法-隐藏字段(缺点:用户可以操纵字段的值(但是也可以操纵复选框的值,因此,如果只期望1或0,这不是真正的问题)) 第二种方法-为未设置的索引分配默认值: