Javascript html5复选框返回“;关于;值而不是我设置的值

Javascript html5复选框返回“;关于;值而不是我设置的值,javascript,html,checkbox,submit,Javascript,Html,Checkbox,Submit,我对html5复选框有一个问题,我必须将它的值发布在提交按钮上。 每次单击check按钮,我都会有一个onclick,如果未选中,则将其值设置为“0”,如果选中,则将其值设置为“1”。 问题是,取消选中按钮并返回值0非常有效,但当我单击它将其设置为1时,它会将“on”作为值传递,而不是“1”。 有没有关于这个的回旋处的想法 以下是按钮未选中启动时的代码: <input id="dati[3]" name="dati[3]" type="checkbox" onclick=" var x3=

我对html5复选框有一个问题,我必须将它的值发布在提交按钮上。 每次单击check按钮,我都会有一个onclick,如果未选中,则将其值设置为“0”,如果选中,则将其值设置为“1”。 问题是,取消选中按钮并返回值0非常有效,但当我单击它将其设置为1时,它会将“on”作为值传递,而不是“1”。 有没有关于这个的回旋处的想法

以下是按钮未选中启动时的代码:

<input id="dati[3]" name="dati[3]" type="checkbox" onclick="
var x3=document.getElementById("dati[3]").value; 

if (x3=="1") {
    document.getElementById("dati[3]").value="0";
} else {
    document.getElementById("dati[3]").value="1";
}
">

如果按钮开始选中,它也有同样的问题,它会正确地取消选中,但再次单击以检查时,值为“开”,而不是“1”

    <input id="dati[3]" name="dati[3]" type="checkbox" onclick="
var x3=document.getElementById("dati[3]").value; 

if (x3=="1") {
    document.getElementById("dati[3]").value="0";
} else {
    document.getElementById("dati[3]").value="1";
}
">

也许这甚至会导致你的错误。请尝试并告诉我是否已修复该复选框。如果未选中复选框,则该控件将不会成功。这意味着它根本不会被提交,而不是提交的值将是
0

如果选中,则它将提交其值。您没有
属性,因此其默认值将是
on

您需要JavaScript来尝试更改其值,但这永远不会运行,因为您的HTML中有语法错误。JavaScript中的第一个
将结束属性值。这将留给您以下内容:

onclick="var x3=document.getElementById("
这将抛出一个JavaScript错误

忘记尝试提交
0
1
。移动逻辑服务器端,关心字段是否提交,而不是它所具有的特定值。您可以将
value=“1”
作为HTML属性,这样它将不提交任何内容或
1
而不是不提交任何内容或

一种更常见的方法是使用
name=“dati[]”value=“3”
并担心数组中的值而不是它们所在的位置。

我这样解决:

<input id="dati[3]" type="hidden" name="dati[3]" value="1">
<input id="IarITK0MIY" type="checkbox" checked value="1" 
onclick="var x3=document.getElementById('dati[3]').value;
if (x3=='1')
{document.getElementById('dati[3]').value='0';
} else {document.getElementById('dati[3]').value='1';}">

现在它在我的代码中可以正常工作了,我可以发送带有1或0的“dati[3]”,具体取决于复选框的值是否选中


谢谢大家的帮助!!!

在输入元素中添加value属性
Add value='1',并加上“and',但仍然不起作用…:更改为:但仍然无法工作…感谢您的调试。我变了“和”,但仍然不起作用,我理解你所说的复选框“如果不选中,则不提交任何内容”,这就是我试图改变这种行为的原因。不幸的是,我无法将此逻辑放到服务器端,因为这是由代码生成的代码。所以我真的需要一种从客户端的checked/unchecked按钮获取0或1的方法,因为我必须用submit转发这个值。现在代码如下,但仍然不起作用
<input id="dati[3]" type="hidden" name="dati[3]" value="1">
<input id="IarITK0MIY" type="checkbox" checked value="1" 
onclick="var x3=document.getElementById('dati[3]').value;
if (x3=='1')
{document.getElementById('dati[3]').value='0';
} else {document.getElementById('dati[3]').value='1';}">