1. ホーム
  2. javascript

[解決済み] [Solved] How to ensure a <select> form field is submitted when it is disabled?

2022-04-19 11:38:06

Question

私は select フォームフィールドを "readonly"としてマークしたいのですが、ユーザーが値を変更できないようにするためです。 この場合 disabled 属性は、ユーザーが値を変更することを防ぎますが、フォームと一緒に値を送信しません。

readonly 属性は inputtextarea というフィールドがありますが、基本的にはそのようにしたいのです。 これを動作させる方法はあるのでしょうか?

私が考えているのは、以下の2つの可能性です。

  • を無効化する代わりに select をすべて無効にします。 option を選択し、CSSでグレーアウトさせることで、無効化されているように見える。
  • 送信ボタンにクリックイベントハンドラを追加し、フォームを送信する前に、無効になっているすべてのドロップダウンメニューを有効にするようにします。

解決するには?

<select disabled="disabled">
    ....
</select>
<input type="hidden" name="select_name" value="selected value" />

ここで select_name は、通常 <select> .

もう一つの選択肢

<select name="myselect" disabled="disabled">
    <option value="myselectedvalue" selected="selected">My Value</option>
    ....
</select>
<input type="hidden" name="myselect" value="myselectedvalue" />

さて、この件ですが、使っているウェブサーバーによっては、このように hidden の前、あるいは後に入力します。 <select> .

私の記憶が正しければ、IISの場合は前に、Apacheの場合は後に記述します。いつものように、テストが重要です。