Javascript 输入复选框true或checked或yes
我已经看到了预选复选框的三种实现。我开始使用checked=“checked”是因为我认为这是“正确”的方式(但从来没有像“checked”=“yes”这样)。我正在考虑更改为checked=“true”,因为它看起来更可读,更容易编写JavaScript。请注意,这个问题同样适用于其他属性,例如“disabled”=“disabled”与“disabled”=“true”。只要我保持一致,使用“真实”是首选方法吗?多谢各位Javascript 输入复选框true或checked或yes,javascript,html,checkbox,html-input,Javascript,Html,Checkbox,Html Input,我已经看到了预选复选框的三种实现。我开始使用checked=“checked”是因为我认为这是“正确”的方式(但从来没有像“checked”=“yes”这样)。我正在考虑更改为checked=“true”,因为它看起来更可读,更容易编写JavaScript。请注意,这个问题同样适用于其他属性,例如“disabled”=“disabled”与“disabled”=“true”。只要我保持一致,使用“真实”是首选方法吗?多谢各位 <input type="checkbox" checked="
<input type="checkbox" checked="checked" value="123" name="howdy" />
<input type="checkbox" checked="true" value="123" name="howdy" />
<input type="checkbox" checked="yes" value="123" name="howdy" />
只有
选中的和checked=“checked”
是有效的。其他选项取决于浏览器中的错误恢复
checked=“yes”
和checked=“true”
特别糟糕,因为它们意味着checked=“no”
和checked=“false”
将默认状态设置为未选中……而它们不会这样做。相应地,选中输入的属性可以不存在/不存在或将“checked”作为其值。这不会使其他值无效,因为浏览器实现没有允许“true”、“on”、“yes”等值的限制。要确保您将编写一个跨浏览器复选框/单选框,请按照的建议使用checked=“checked”
禁用、只读和ismap输入的属性以相同的方式进行
已编辑
正如@Quentin所警告的,对于checked、disabled、readonly和ismap input的属性,empty不是有效的值。很抱歉,我想在这里添加它。。。那么$('input[name=foo]').attr('checked',true);?它真的应该是$('input[name=foo]').attr('checked','checked')?它应该是jQuery(selector).prop('checked',true)
(attr
在处理选中属性的方式上不一致,因此为了维护人员的大脑,应该避免使用)。实际上,checked=“checked”
看起来同样糟糕,因为它可能暗示checked=“not checked”
,或者equality的某些派生词意味着未选中。实际上,这是一个set/notset问题。那么$('input[name=foo]').attr('checked',true);?它真的应该是$('input[name=foo]')。attr('checked','checked')?否。它表示可以省略checked属性,或者可以将值设置为'checked'。这确实会使其他所有值无效(HTML只允许您使用允许的内容,不允许您使用非禁止的内容)。因为它是一个布尔属性,所以当属性存在时,可以省略除值之外的所有内容。i、 e.给定checked=“checked”
您可以提交前9个字符和最后一个字符)。我说这不会使其他值无效,因为浏览器可以实现他们想要的解析html的方式,因为他们接受W3C推荐的ommited/note checked属性或checked=“checked”。我接受否定“casue”empty不是有效值,但其他所有内容仍然适用。