フォームに無効な入力がいくつかあり、それをサーバーに送信したいのですが、Chrome によってリクエストから除外されます。
隠しフィールドを追加せずにこれを回避する方法はありますか?
<form action="/Media/Add">
<input type="hidden" name="Id" value="123" />
<!-- this does not appear in request -->
<input type="textbox" name="Percentage" value="100" disabled="disabled" />
</form>
ベストアンサー1
属性を持つ要素はdisabled
送信されていない、またはその値が投稿されていないと言えます(ステップ3の2番目の箇条書きを参照)。フォームデータセットを構築するための HTML 5 仕様)。
すなわち、
<input type="textbox" name="Percentage" value="100" disabled="disabled" />
ちなみに、17.12.1HTML 4 仕様では:
- 無効なコントロールはフォーカスを受け取りません。
- 無効なコントロールはタブナビゲーションではスキップされます。
- 無効なコントロールは正常に投稿できません。
あなたのケースでは属性を使うことができますreadonly
。これを行うことで、フィールドのデータを投稿できるようになります。
すなわち、
<input type="textbox" name="Percentage" value="100" readonly="readonly" />
ちなみに、17.12.2HTML 4 仕様では:
- 読み取り専用要素はフォーカスを受け取りますが、ユーザーが変更することはできません。
- 読み取り専用要素はタブナビゲーションに含まれます。
- 読み取り専用要素が正常に投稿されました。