私たちは皆、HTMLでチェックボックス入力を形成する方法を知っています。
<input name="checkbox_name" id="checkbox_id" type="checkbox">
わからないこと - チェックされたチェックボックスの技術的に正しい値は何ですか?私はこれらすべての仕事を見ました:
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked>
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="on">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="checked">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="true">
それは問題ではないという答えですか? spec から、正しい here とマークされた答えに対する証拠は見当たりません。
チェックボックス(およびラジオボタン)は、ユーザーが切り替えることができるオン/オフスイッチです。制御要素のchecked属性が設定されているとき、スイッチは "on"です。フォームが送信されると、 "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"
についても同様の質問を参照してください。
HTML5の仕様 :
http://www.w3.org/TR/html5/forms.html#attr-input-checked :
Disabledコンテンツ属性はブール属性です。
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
要素上のブール属性の存在は真の値を表し、属性の不在は偽の値を表します。
属性が存在する場合、その値は空の文字列か、属性の正規名にASCII大文字と小文字を区別しないで一致する値である必要があります。先頭または末尾に空白はありません。
結論 :
以下は、 有効、等価、およびtrue です。
<input type="checkbox" checked />
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="ChEcKeD" />
以下は 無効 です。
<input type="checkbox" checked="0" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="true" />
属性の欠如は false の唯一の有効な構文です。
<input />
おすすめ
checked="checked"
は無効なXHTML(ただし有効なHTML)であるため、<input checked>
を使用する必要があります。そうでない場合は、短いので<input checked>
を使用してください。
<input ... checked />
<input ... checked="checked" />
それらも同様に有効です。そしてJavaScriptでは:
input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");
あなたはこれが欲しいと思う:checked='checked'
checked = "チェック済み"
同等です。
スペックに従って checkbox '---- = checked = "checked"または ""(空の文字列)またはempty要素が選択されたコントロールを表すことを指定します。
Check falseにする唯一の方法は、値をすべて省略することです。 Angular 1.xを使用すると、これを実行できます。
<input type="radio" ng-checked="false">
あなたがそれをチェックしないようにする必要があるならば、これはずっと正直です。