【问题标题】:Unchecked checkboxes gets posted未选中的复选框被发布
【发布时间】:2012-11-07 13:58:57
【问题描述】:

我有一个带有复选框的表单:

<input class="checkbox" type="checkbox" name="exc[57]" value="57" checked>
<input class="checkbox" type="checkbox" name="exc[51]" value="51" checked>

当我取消选中一个复选框时,它不应该根据http://www.w3schools.com/jsref/prop_checkbox_value.asp 被发布

【问题讨论】:

  • 你试过不同的浏览器吗?在我最新的 FF 中,只发布了选中的字段。请向我们提供更多信息(完整的最小示例页面、发布目标等)
  • 我在这里尝试过:link - 操作系统:Windows7 x64。 - Chrome 22.0.1229.94:取消/选中获取自行车 - Firefox 16.0.2:取消/选中获取自行车 - IE 9:取消/选中获取自行车 - Opera 11.61:取消/选中获取自行车 - Safari 5.1.7:取消/选中获取自行车 - 所有浏览器都有问题。
  • Posting 通常意味着将数据发送到服务器,这与您在代码示例中所做的不完全一样!

标签: forms checkbox unchecked


【解决方案1】:

如果您将表单提交到服务器,则该值将不会在 post 数据中传输。但是,如果您从客户端脚本访问字段的 value 属性,您将在 value 属性中获取实际数据。如果您想知道该框是否已被选中,请改用 checked 属性:

<!DOCTYPE html>
<html>
<head>
    <script>
    function displayResult()
    {
        var x=document.getElementById("bike").checked;
        alert(x);
    }
    </script>
</head>
<body>
    <form>
        <input type="checkbox" id="bike" value="Bike"> I have a bike<br>
    </form>
    <button type="button" onclick="displayResult()">Display value</button>
</body>

【讨论】:

  • 在我的代码中我有:&lt;input class="checkbox" type="checkbox" name="exc[57]" value="57" checked&gt; 我取消选中该框。当我发布时,我得到了 print_r Array ( [51] =&gt; 51 [50] =&gt; 50 ... [57] =&gt; 57 ) 57 不应该包括在内,因为它没有被选中。
  • 您能否使用您最喜欢的浏览器开发工具或Fiddler 之类的工具查看浏览器发送的实际数据?请更新您的代码示例,以便我们了解到底发生了什么。
猜你喜欢
  • 2012-07-24
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多