Chrome 21没有检查单选按钮

问题描述:

经过很多努力,我想到了这一点,所以我想我会分享我遇到的情况,以便其他人可以从我的努力中受益。 Firefox IE和Chrome 19(唯一的其他版本,我很方便)没有这个问题,但铬21。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> 

不管我做什么,加载页面时不会出现检查。

我的html无法确定,但在我的情况下,它是隐藏的,所以我没有马上注意到,但隐藏与否,按钮不会被检查(因此不会与表单一起提交)页面加载。

如果您将投入正常工作的有效位置...

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

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

测试谷歌浏览器21.0.1180.75和0.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> 

虽然不属于所讨论的浏览器中,一些移动设备(例如银河S3 )不会检查单选按钮,除非它在表单中。根据我的经验,大多数其他输入(例如复选框)都很好。