5

我经过一番努力才弄清楚这一点,所以我想我会分享我遇到的东西,这样其他人就可以从我的努力中受益。Firefox IE 和 chrome 19(我手头唯一的其他版本)对此没有问题,但 chrome 21 有。

如果你有这个单选按钮

<input type='radio' name'k1' value='v1' checked>

如果它位于无效位置,它将不会在页面上显示为选中状态。

例如我有

<table>
<input type='radio' name'k1' value='v1' checked> 
<tr><td>table information</td></tr> 
</table> 

而且无论我做什么,加载页面时都不会显示为选中状态。

4

3 回答 3

4

在 Google Chrome 21.0.1180.75 和 .79 上测试

<table>
  <input type="checkbox" name="n" value="v" checked="checked" />
</table>

缺少<tr><td></tr></td>输入元素周围的复选框会导致checked复选框不显示为选中状态。此外,当提交表单时,这些复选框也不会被检查到服务器端!

正确格式化 html 后,复选框应显示为选中,如checked属性所示:

<table>
  <tr>
    <td>
      <input type="checkbox" name="n" value="v" checked="checked" />
    </td>
  </tr>
</table>
于 2012-08-16T18:14:35.887 回答
2

我的 html 肯定是无效的,但在我的情况下它是隐藏的,所以我没有立即注意到,但无论是否隐藏,当页面加载时按钮将不会被检查(因此不会与表单一起提交)。

如果您将输入放在有效的位置,它可以正常工作......

<table>
<tr><td>table information
<input type='radio' name'k1' value='v1' checked>
</td></tr>
</table>

所以确定我的布局有误,我确定流行的反应是“你怎么能指望浏览器解释无效的 html?” 我同意,但不检查单选按钮,特别是因为它被隐藏(并且它曾经在以前的 chrome 版本中工作)使得难以追踪错误。所以我想我可以为别人节省几个小时的工作。

于 2012-08-13T15:42:52.497 回答
0

尽管它与所讨论的浏览器无关,但某些移动设备(例如 Galaxy S3)不会检查单选按钮,除非它在表单中。根据我的经验,大多数其他输入(例如复选框)都很好。

于 2013-02-06T18:51:59.553 回答