我们都知道如何在HTML中形成复选框输入:

<input name="checkbox_name" id="checkbox_id" type="checkbox">

我不知道的是,选中复选框的技术正确值是多少?这些方法我都见过:

选中<输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框”选中> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“开”> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“是”> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“选中”> <输入名称=“checkbox_name” id=“checkbox_id” 类型=“复选框” 选中=“true”>

答案是不重要吗?从说明书本身来看,我没有看到任何证据证明这个答案是正确的:

复选框(和单选按钮)是可以切换的开/关开关 由用户决定。当控制元件被检查时,开关是“打开”的 属性已设置。当提交表单时,只有“on”复选框 控制可以成功。一个表单中的几个复选框可以共享 相同的控件名。因此,例如,复选框允许用户 为相同的属性选择几个值。使用INPUT元素 创建复选框控件。

说明书作者会说什么是正确答案?请提供基于证据的答案。


当前回答

严格来说,你应该放一些有意义的东西——根据这里的规范,最正确的版本是:

<input name=name id=id type=checkbox checked=checked>

对于HTML,还可以使用空属性语法,checked="",甚至只是checked(对于更严格的XHTML,这是不支持的)。

但实际上,大多数浏览器都支持引号之间的任何值。将检查以下所有内容:

<input name=name id=id type=checkbox checked>
<input name=name id=id type=checkbox checked="">
<input name=name id=id type=checkbox checked="yes">
<input name=name id=id type=checkbox checked="blue">
<input name=name id=id type=checkbox checked="false">

只有以下选项是不勾选的:

<input name=name id=id type=checkbox>

另见类似的问题disabled="disabled"。

其他回答

<input ... checked />
<input ... checked="checked" />

它们是同样有效的。在JavaScript中:

input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");

让checked为false的唯一方法是省略任何值,这很疯狂。在Angular 1中。X,你可以这样做:

  <input type="radio" ng-checked="false">

如果你想让它不受控制的话,那就理智多了。

检查 检查= " " 检查= "检查" 是等价的;


根据规格复选框 '---- checked = "checked"或""(空字符串)或空 指定元素表示所选控件。——'

我认为这可能会有所帮助: 首先阅读微软和W3.org上的所有规格。 您会看到,设置复选框的实际元素需要在element PROPERTY上完成,而不是在UI或属性上。 $ (' mycheckbox ')[0]支票

其次,你需要意识到checked属性返回一个字符串“true”,“false”为什么这很重要?因为你需要使用正确的类型。字符串,不是布尔值。这在解析复选框时也很重要。 $ (' mycheckbox ')[0]。Checked = "true" 如果($(“mycheckbox”)[0]。选中=== "true"){ / /做某事 }

您还需要认识到,“checked”ATTRIBUTE用于初始设置复选框的值。一旦元素被呈现给DOM,这就没有什么作用了。想象一下,当网页加载并开始解析时,这是正常的。 我将使用IE的首选项:<input type="checkbox" checked="checked"/>

最后,对于复选框来说,混淆的主要方面是复选框的UI元素与元素的属性值不相同。它们之间没有直接关联。 如果你在。net中工作,你会发现用户“勾选”一个复选框永远不会反映传递给控制器的实际bool值。 为了设置UI,我使用$('mycheckbox').val(true);和$ (' mycheckbox”)。attr(“检查”,“检查”);

简而言之,对于选中的复选框,您需要: 初始DOM: <input type="checkbox" checked="checked"> 元素属性:$('mycheckbox')[0]。Checked = "true"; UI: $ (' mycheckbox ') .val(真正的);和$ (' mycheckbox”)。attr(“检查”,“检查”);

我认为你想要的是: 检查= '检查'