html5 复选框 returns "on" 值而不是我设置的值
html5 checkbox returns "on" value instead of what i set it to
我遇到了 html5 复选框的问题,我必须 post 它在提交按钮上的值。
每次单击复选按钮时,我都有一个 onclick,如果未选中则将其值设置为“0”,如果选中则设置为“1”。
问题是取消选中按钮和 returns 值 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";
}
">
如果按钮开始选中它也有同样的问题,它会正确取消选中,但再次点击选中它时值 "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";
}
">
这是完全错误的语法。我什至不知道为什么你的浏览器正在执行任何代码
您不能在代码中使用 "
。你必须在 javascript 代码中使用 '
像这样:
<input id="dati[3]" name="dati[3]" type="checkbox" value="0" 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
.
如果选中,则将提交其值。您没有 value
属性,因此其默认值为 on
。
您有 JavaScript 尝试更改它的值,但那永远不会 运行 因为您的 HTML 中有语法错误。 JavaScript 内的第一个 "
将结束属性值。这给你留下了这个:
onclick="var x3=document.getElementById("
这将引发 JavaScript 错误。
忘记尝试提交 0
或 1
。移动逻辑服务器端并关心该字段是否已提交而不是它具有的特定值。您可以将 value="1"
作为 HTML 属性包含在内,这样它将不提交任何内容或 1
而不是不提交任何内容或 on
.
一种更常用的方法是使用 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';}">
现在它按照我的代码中的预期工作,我可以发送 "dati[3]" 1 或 0,具体取决于是否选中复选框的值。
谢谢大家的帮助!!!
我遇到了 html5 复选框的问题,我必须 post 它在提交按钮上的值。 每次单击复选按钮时,我都有一个 onclick,如果未选中则将其值设置为“0”,如果选中则设置为“1”。 问题是取消选中按钮和 returns 值 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";
}
">
如果按钮开始选中它也有同样的问题,它会正确取消选中,但再次点击选中它时值 "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";
}
">
这是完全错误的语法。我什至不知道为什么你的浏览器正在执行任何代码
您不能在代码中使用 "
。你必须在 javascript 代码中使用 '
像这样:
<input id="dati[3]" name="dati[3]" type="checkbox" value="0" 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
.
如果选中,则将提交其值。您没有 value
属性,因此其默认值为 on
。
您有 JavaScript 尝试更改它的值,但那永远不会 运行 因为您的 HTML 中有语法错误。 JavaScript 内的第一个 "
将结束属性值。这给你留下了这个:
onclick="var x3=document.getElementById("
这将引发 JavaScript 错误。
忘记尝试提交 0
或 1
。移动逻辑服务器端并关心该字段是否已提交而不是它具有的特定值。您可以将 value="1"
作为 HTML 属性包含在内,这样它将不提交任何内容或 1
而不是不提交任何内容或 on
.
一种更常用的方法是使用 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';}">
现在它按照我的代码中的预期工作,我可以发送 "dati[3]" 1 或 0,具体取决于是否选中复选框的值。
谢谢大家的帮助!!!