布尔属性的语法是什么,例如一个选中的复选框,用HTML格式?

时间:2010-05-20 14:58:58

标签: jquery html checkbox

听起来有点像一个愚蠢的问题,但我想知道在HTML中选中/取消选中复选框的最佳方式是什么。

我见过很多不同的例子:

<input type="checkbox" checked="checked" />
<input type="checkbox"  />

<input type="checkbox" checked="yes" />
<input type="checkbox" checked="no" />

<input type="checkbox" checked="true" />
<input type="checkbox" checked="false" />

哪些浏览器可以使用哪些浏览器,最重要的是,jQuery会确定在所有3个框中检查哪个框?

修改 W3C规范似乎暗示只有被检查的attr是正确的。这是否意味着checked =“false”和checked =“no”仍会检查该框?

9 个答案:

答案 0 :(得分:31)

在HTML中:

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

对于XHTML,您必须使用属性/值匹配对:

<input type="checkbox" checked="checked" />

答案 1 :(得分:7)

<强> HTML:

正如他们在W3C page所说的那样,任何一个都应该是正确的。只需要设置checked属性。

正如我在Coronatus的评论中写的那样:

  

事实上,如果它是无关紧要的   检查,检查=“无论什么”或   检查=“检查”。它在检查   布尔值,所以它是真的   (设置)或假(未设置)。

<强> XHTML:

您必须指定它,因此checked="checked"是唯一有效的。大多数浏览器可能会正确解析HTML值,但您的页面仍会出现错误。

答案 2 :(得分:5)

根据HTML spec,正确的是:

<input type="checkbox" checked />
<input type="checkbox" />

我使用它,jQuery与它们完美配合。

答案 3 :(得分:2)

快速测试显示jQuery将任何值设置为等待检查。

alert( $('input:checked').length );
// Returns 5

即使是空字符串和负值。

答案 4 :(得分:1)

根据W3C recommendations,您的第一个建议是正确的。

答案 5 :(得分:1)

“已检查”属性的存在指定了状态。该值无关紧要/不需要。

<input type="checkbox" checked="checked" />
<input type="checkbox"  />

是我的建议

答案 6 :(得分:1)

我会小心在chrome,firefox和opera上使用它。 Chorme似乎出现了复选框出现问题,Firefox对样式和标签区分大小写,而且Opera似乎运行正常,但更新速度很慢。可能只是正在使用的浏览器的版本。

除此之外,我认为它应该在所有这些中运行<input type="checkbox" checked />。唯一的区别在于各个浏览器如何在页面上显示内容。

答案 7 :(得分:1)

  

W3C规范似乎暗示只有被检查的attr是正确的。这是否意味着checked =“false”和checked =“no”仍会检查该框?

完全。这就是为什么使用checked="true"checked="yes"这是一个坏主意,他们暗示checked="false"checked="no"不会选中此框。

答案 8 :(得分:0)

HTML5规范

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes

  

元素上存在布尔属性表示真值,缺少属性表示假值。

     

如果该属性存在,则其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写匹配的值,没有前导空格或尾随空格。

<强>结论

boolean成为标记tag的布尔属性,例如checked<input type="checkbox"

以下是有效,等效和真实

<tag boolean />
<tag boolean="" />
<tag boolean="boolean" />
<tag boolean="BoOlEaN" />

以下是无效

<tag boolean="0" />
<tag boolean="1" />
<tag boolean="false" />
<tag boolean="true" />

缺少属性是 false 的唯一有效语法:

<tag />

<强>建议

如果您关心编写有效的XHTML,请使用boolean="boolean",因为<tag boolean>是无效的XHTML(但是有效的HTML),而其他替代方案的可读性较差。否则,只需使用<tag boolean>,因为它更短。