检查="检查"没有使用chrome

时间:2013-06-05 22:08:49

标签: html checkbox

<input type="checkbox" name="Type[]" value="Red" checked="checked" /><span class="space-right">Red</span>

正确设置复选框以在firefox和safari中检查但不是chrome。在网上找不到任何关于此的信息。

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

还尝试过裸checked以及checked="true"

不寻找js解决方案,谢谢。

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

9 个答案:

答案 0 :(得分:27)

我能够在Google Chrome版本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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

尝试使用标签DIV

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

没关系。

答案 3 :(得分:1)

@Abhay的答案对我有用,我不知道为什么人们会否定它。我有2个无线电组共享相同的名称,如下所示,

  <input type="radio" name="gender" value="male" checked> Male<br>
  <input type="radio" name="gender" value="female"> Female<br>
  <input type="radio" name="gender" value="other"> Other 

然后再次在页面底部

  <input type="radio" name="gender" value="male" checked> Male<br>
  <input type="radio" name="gender" value="female"> Female<br>
  <input type="radio" name="gender" value="other"> Other 

所以发生的事情是浏览器变得模糊不清,它只选择底部的而不是顶部的。

希望这会对某人有所帮助。

享受;)

答案 4 :(得分:0)

您在没有'onChange'处理程序的情况下为表单字段提供了'已选中'道具。这将呈现一个只读字段。如果该字段是可变的,请使用'defaultChecked'。否则,请设置“ onChange”或“ readOnly”。

答案 5 :(得分:0)

Chrome 和在form标记之外嵌套 radio元素存在问题的问题。 考虑在form标签内使用输入广播或其他广播

答案 6 :(得分:-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/

希望这会有所帮助。

答案 7 :(得分:-1)

Checked =“checked”在Chrome中正常运行。确保没有相同名称的倍数。还要检查隐藏的内容。

答案 8 :(得分:-2)

如果您有这样的HTML:

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

然后由于名称冲突,将不会检查任何人。