【问题标题】:Checkbox is always "checked"复选框始终“选中”
【发布时间】: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


【解决方案1】:

我更正如下:

 <div class="checkbox">
                       <label  class="checkbox inline" >
                           <input type="checkbox"  id="transport_http" name="transport_http"  value="http" />

                       </label>
                       <label  class="checkbox inline" >
                           <input type="checkbox"  id="transport_https" name="transport_https"  value="https"/>


                       </label>
                   </div>

并在类似的 javascript 中读取值

request.getParameter("transport_https"),request.getParameter("transport_http")

作品

【讨论】:

  • 那不是 Java 而不是 javascript 吗?
  • 这是一个 jS 函数(服务器端 javascript 函数,类似于 javascript,但我们的自定义库),我用来读取这些复选框参数
  • 真的吗?我以为这是jsp 的事情,服务器端的javascript 只被node.js 使用
  • 你可以查看这个网站,我们有一个叫jaggery的库,你可以试试:) jaggeryjs.org
  • 谢谢,我可能会(虽然我现在对 Django 很满意)。这是一个小的专业提示 - 你们应该删除那个 nicescroll 插件,它非常不自然,特别是当基于 webkit 的浏览器允许你原生设置滚动样式时......
猜你喜欢
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
  • 2022-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多