【发布时间】:2014-11-12 08:24:43
【问题描述】:
我有一个 HTML 表单并为此定义了一个复选框。
我的示例代码:
<label class="checkbox inline" >
<input type="checkbox" id="http" name="HTTP" <%=transport_http%>/>
<input type="hidden" id="http_checked" name="http_checked" value= <%if(transport_http == "checked"){%>"http"<%}else{%>""<%}%>/>
</label>
即使我取消选中该框,我也总是将值设为“已选中”。可能出了什么问题?
我在 javascript 中读取了我的隐藏变量参数;
var transport =request.getParameter("http_checked")
对于这个变量,我总是将值设为“http”。 (即使我选中或未选中该框)这是为什么?
【问题讨论】:
-
你为什么有一个隐藏的输入呢? (并且永远不会检查 checkbox 的值,因为您没有指定 value 属性,如果设置了它,它只会是
on。) -
该变量永远不会反映复选框的当前状态。它将反映
transport_http的状态(不依赖于复选框的状态)。你的代码没有任何意义。它也永远不会有值http,因为这不是您的代码设置的两个值之一。 -
@Quentin 什么?不,Checkboxes don't need a value attribute in order to work(这也没有任何意义)。你的其他评论是正确的
-
@Ratha 你并不总是得到一个选中的值,你只是从隐藏的输入中获取值,因为没有任何东西可以将复选框和隐藏的输入相互连接 - 它们都独立于彼此。正如昆汀所说,整个设置没有太大意义,所以我们不能完全“纠正”它,因为坦率地说,我们不确定你想要达到什么目的。在我看来,您似乎可以完全放弃隐藏的输入并依赖复选框
-
好的,很高兴能帮到我。请记住,输入是相互独立的,如果您希望它们链接在一起 - 需要确保这一点(客户端 javascript、一些服务器端分析等)
标签: javascript jquery html checkbox