27

明示的に定義されていないチェックボックスがオンになっているHTMLフォームを送信するとvalue、Chromeonはそのフィールドの値として送信します。

それは標準的な動作ですか?または、他のブラウザに何を期待できますか?

4

3 に答える 3

28

HTML 4.01 仕様では、チェックされたチェックボックスの値が指定されていません。「オン」であると言及しているだけですが、これは単なる散文であり、デフォルト値が何であるかを述べていません。ただし、この場合は属性が必要であるとも (要素の説明のinput下で) 述べています。value

したがって<input type=checkbox name=foo>、使用される値に関して未定義の動作がありますが、実際にはブラウザーvalue=onはデフォルトとして使用します。

于 2012-10-16T12:52:56.820 に答える
3

ブラウザは、チェックボックスがオンになっている場合にのみ、チェックボックスの値(POSTデータ内)を送信します。特定のチェックボックスの値(任意の値)がPOSTデータに存在するかどうかを確認するチェックだけで十分です。

すなわち

// no need to check against 'on', 'true', '1' etc..
if(post data contains a value for checkbox1) {
    // checkbox 1 is checked
}
else {
    // not checked
}
于 2012-10-16T09:45:18.150 に答える