2013-06-05 90 views
20
<input type="checkbox" name="Type[]" value="Red" checked="checked" /><span class="space-right">Red</span> 

正确设置复选框以检查Firefox和Safari浏览器,但不是Chrome浏览器。找不到关于此在线的任何信息。checked =“checked”not in chrome

任何人都知道如何解决这个问题?

也曾尝试裸checked以及checked="true"

不找一个js的解决方案,谢谢。

编辑:塔科下面的答案描述了问题所在。使用表单和输入元素时,元素必须正确嵌套在<td></td>标记中,否则checked="checked"不起作用。下面是证明这是真的在Chrome 29.0.1547.57一个的jsfiddle的例子:http://jsfiddle.net/LnL7b/

+4

对我来说工作正常:http://jsfiddle.net/zwU43/ –

+1

嗯,我刚刚从字面上复制了该行,并使用Chrome调试器将其粘贴到问题的中间,并显示一个Checked复选框字红... – Jonathan

+0

我使用铬以及它工作正常。只要使用jquery,如果你没有得到所需的结果。 http://jsfiddle.net/HnEgT/ – Supplement

回答

24

我能够在谷歌浏览器版本28.0.1500.95上复制此问题。

<table> 
    <tr> 
    <td>test</td> 
    <input type="radio" name="foo" value="bar" checked="checked"> 
    </tr> 
</table> 

我错误地嵌套了一个单选按钮,从而破坏了表格。这会以某种方式导致Google Chrome无法将输入收音机标记为已选中状态。

jsfiddle example - brokenjsfiddle example - working

+3

谢谢,对我来说,这个问题最终还是不适当地将复选框嵌套在表格中。 – chuckieDub

+2

如果您的输入在表格中不正确,那么显然仍是问题 – user1015711

-1

我知道你说你不打算使用它,但jQuery是一个选项:

<!DOCTYPE html> 
<html> 
<head> 
    <style> 
    div { color:red; } 
    </style> 
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
</head> 
<body> 

<form> 
    <p> 
    <input type="checkbox" name="newsletter" value="Hourly" checked="checked"> 

    <input type="checkbox" name="newsletter" value="Daily"> 
    <input type="checkbox" name="newsletter" value="Weekly"> 

    <input type="checkbox" name="newsletter" value="Monthly" checked> 
    <input type="checkbox" name="newsletter" value="Yearly"> 
    </p> 
</form> 
<div></div> 

<script> 
var countChecked = function() { 
    var n = $("input:checked").length; 
    $("div").text(n + (n === 1 ? " is" : " are") + " checked!"); 
}; 
countChecked(); 

$("input[type=checkbox]").on("click", countChecked); 
</script> 

</body> 
</html> 

http://jsfiddle.net/HnEgT/

希望这有助于一些什么。

+0

OP想要检查一个特定的复选框,但它(神秘地)不能在他的Chrome安装中工作 - 这是否解决了这个问题?它似乎只是计数检查的输入。使用'input.prop('checked',true)'而不是*如果OP愿意使用JS,可能是一个有效的解决方案。 –

+2

这个答案如何得票是超出我的。它不仅没有回答这个问题,而且也直接违背了OP要求的一个非JS解决方案。 – chuckieDub

3

checked =“checked”在Chrome中正常工作。确保你没有任何其他问题。任何无效的HTML。没有包含块级元素的内联元素?

+0

这很可能是正确的答案 - 在他的''里面的'红色'是无效的,正如上面评论中所提到的。可能它只是打破了OP的特定版本的Chrome。 –

+0

我修复了HTML并仍然存在问题。适用于jsfiddle,但不是实际的网页。 – chuckieDub

+0

也许你在调用页面加载后取消选中所有复选框的JavaScript函数。或者一个插件,或者它只在chrome中显示时尝试禁用一些你正在使用的插件。一些插件加载不需要的脚本。 –

-3

选中= “选中” 在Chrome中工作正常。确保没有相同名称的倍数。同时检查隐藏的。

+5

不是同一个名称的倍数?该名称用于制作单选按钮组。 –

2

尝试用DIV标签

<div><input type="checkbox" name="ckkhuyenmai" id="ckkhuyenmai" checked>KHUYENMAI</div> 

会被罚款。

+0

太棒了!它运作良好。 –

-3

如果你有HTML这样的:

<input type="checkbox" name="email"> 
<input type="checkbox" name="email"> 
<input type="checkbox" name="email" checked> 

那么没有人会被检查,由于名称冲突。

+3

这不是问题的实际答案 –