web-dev-qa-db-ja.com

データを送信しない無効なフォームフィールド

データの送信が無効になっているフォームフィールドを有効にする方法はありますか(属性フラグなど)。

または、それが不可能な場合、CSSまたは無効にする以外の属性を非表示にせずに編集することをブロックする方法はありますか?

私の現在の特別なケースは、データセットの識別子で、フォームに表示する必要があります(編集不可)-より良い解決策がなければ、無効なフィールドに加えて隠しフィールドを使用して実際のデータを保持します無効なものが表示されている値。

134
bardiir

読み取り専用属性をチェックアウト http://www.w3schools.com/tags/att_input_readonly.asp

213
Steve Robillard

Disabled属性を持つ要素は送信されないか、値が送信されていないと言うことができます。

つまり.

<input type="textbox" name="Percentage" value="100" disabled="disabled" /> 

ご参考までに、

  1. 無効なコントロールはフォーカスを受け取りません。
  2. 無効なコントロールは、タブナビゲーションでスキップされます。
  3. 無効なコントロールは正常に投稿できません。

ケースでreadonly属性を使用できます。これを行うことにより、フィールドのデータを投稿できます。

つまり.

<input type="textbox" name="Percentage" value="100" readonly="readonly" />

ご参考までに、

  1. 読み取り専用要素はフォーカスを受け取りますが、ユーザーが変更することはできません。
  2. 読み取り専用要素は、タブナビゲーションに含まれています。
  3. 読み取り専用要素が正常に投稿されました。

注:READONLYはチェックボックスおよび選択タグでは機能しません

参照元

57
Aditya P Bhatt

既に述べたように、READONLY<input type='checkbox'>および<select>...</select>では機能しません。

無効なチェックボックス/選択付きのFormがあり、それらを送信する必要がある場合は、jQueryを使用できます。

$('form').submit(function(e) {
    $(':disabled').each(function(e) {
        $(this).removeAttr('disabled');
    })
});

このコードは、送信時にすべての要素からdisabled属性を削除します。

11
Mario Werner

「無効」にしたいフィールドで(おそらく灰色の背景と一緒に)CSSポインターイベント:なしを使用して、次のようなPOSTアクションを許可します。

<input type="text" class="disable">

.disable{
pointer-events:none;
background:grey;
}

参照: https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

5
Tom

以下の属性でのみ読み取り専用を使用することもできます-

readonly onclick = 'return false;'

これは、読み取り専用のみを使用する場合、ラジオボタンが編集可能になるためです。この状況を回避するには、上記の組み合わせで読み取り専用を使用できます。編集が制限され、要素の値もフォーム送信中に渡されます。

0
Kripa Yadav

selectまたはtextタグで機能するinput要素にCSSまたはクラスを追加します

style = "pointer-events:none; background-color:#E9ECEF"

0
Paresh