これは、firefoxでfireBugが見つけたものです。
他のブラウザでも同じですか?
もしそうなら、この理由は何ですか?
はい、すべてのブラウザ しない 無効な入力は読み取り専用であるため、送信しないでください。
詳細 (セクション17.12.1)
属性定義
disabled [CI]フォームコントロールに設定すると、このブール属性はユーザー入力のコントロールを無効にします。設定されると、disabled属性は要素に次の効果をもたらします。
- 無効なコントロールはフォーカスを受け取りません。
- 無効なコントロールは、タブナビゲーションでスキップされます。
- 無効なコントロールは成功できません。
次の要素が無効属性をサポートしています:BUTTON、INPUT、OPTGROUP、OPTION、SELECT、およびTEXTAREA。
この属性は継承されますが、ローカル宣言は継承された値をオーバーライドします。
無効化された要素のレンダリング方法は、ユーザーエージェントに依存します。たとえば、一部のユーザーエージェントは無効なメニュー項目、ボタンラベルなどを「グレー表示」します。
この例では、INPUT要素は無効になっています。したがって、ユーザー入力を受け取ることはできず、その値はフォームとともに送信されません。
<INPUT disabled name="fred" value="stone">
注意。 disabled属性の値を動的に変更する唯一の方法は、スクリプトを使用することです。
それがW3C仕様で言っていることです であるため、送信されません。
17.13.2成功したコントロール
成功したコントロールは、提出に対して「有効」です。 [中略]
- 無効になっているコントロールは成功できません。
言い換えれば、無効になっているコントロールは無効であると見なされ、送信されるべきではないという仕様です。
無効化を模倣するために3つのことを使用できます。
HTML:readonly
属性(入力に存在する値をフォーム送信で使用できるようにするため。ユーザーは入力値を変更できません)
CSS:'pointer-events':'none'
(ユーザーが入力をクリックするのをブロックする)
HTML:tabindex="-1"
(キーボードからの入力への移動をブロックするユーザー)
Disabled
コントロールは成功できず、成功したコントロールは送信に対して「有効」です。これが、無効化されたコントロールがフォームで送信されない理由です。