经过多方努力我才想到这一点,所以我想我会分享我遇到的东西,所以其他人可以从我的努力中受益。 Firefox IE和Chrome 19(我唯一的其他版本)没有问题,但是Chrome 21确实存在问题。
如果你有这个radiobutton
<input type='radio' name'k1' value='v1' checked>
如果页面位于无效位置,则不会在页面上显示。
例如我有
<table>
<input type='radio' name'k1' value='v1' checked>
<tr><td>table information</td></tr>
</table>
无论我做了什么,在加载页面时都不会检查它。
答案 0 :(得分: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>
答案 1 :(得分:2)
我的html无效肯定,但在我的情况下它是隐藏的所以我没有立即注意到,但是隐藏或不隐藏,按钮将不会被检查(因此不会随表单一起提交)负荷。
如果您将输入放在有效的位置,它可以正常工作......
<table> <tr><td>table information <input type='radio' name'k1' value='v1' checked> </td></tr> </table>
所以我确定布局错了,我确信流行的回答是“你怎么能期望浏览器解释无效的HTML?”并且我同意,但是不检查单选按钮,特别是因为它被隐藏(并且它曾经在以前版本的chrome中工作)使得难以追踪错误。所以我想我可能会节省一些人的工作时间。
答案 2 :(得分:0)
虽然它与所讨论的浏览器无关,但某些移动设备(例如Galaxy S3)不会检查单选按钮,除非它在表单中。在我的经验中,大多数其他输入(例如复选框)都很好。