我想使用复选框的indeterminate属性。更改JavaScript中的值适用于各种浏览器(甚至是MSIE6!),但是,我无法通过任何中的HTML属性设置初始值。
这是设计的吗? 如果是这样,为什么?在服务器端,我可以确定它是不确定的。那么,为什么我不能告诉浏览器?如果一个长期运行的脚本阻止了属性设置,浏览器供应商是否担心FOUC(无格式内容闪烁)?
以下是一个有效的例子:http://jsfiddle.net/KUQC9/1/
答案 0 :(得分:11)
您不能通过HTML设计使复选框不确定。请参阅css-tricks.com上的这篇文章,该文章深入讨论了该主题。
至于你的问题的“为什么”部分,W3C邮件列表中的一些信息可能会有所帮助:
indeterminate
HTML“内容”属性的内容是:
对于它的价值,实际上有一个:indeterminate
CSS选择器(它似乎被视为其他CSS伪类,如:visited
,它也不能直接通过HTML设置,所以也许这是indeterminate
也不可能的另一个原因。在CSS选择器的演示中,W3C本身使用了与您相同的方法:W3C indeterminate CSS selector demo。鉴于此,我会说你正在使用可用于设置复选框的不确定状态的最佳方法
答案 1 :(得分:4)
这是设计的。表示复选框状态的唯一HTML方法是通过checked属性;这是因为复选框是真/假,而不是真/假/未知。标记不确定的内容可以通过Javascript完成,但不会更改复选框的实际/ sumbitted值。
如果你真的想初始化复选框以确定不确定性,你需要使用Javascript(我想象在加载事件上)。