テキスト入力を編集不可にするにはどうすればよいですか?


344

だから私はテキスト入力を持っています

<input type="text" value="3" class="field left">

ここに私のCSSがあります

background:url("images/number-bg.png") no-repeat scroll 0 0 transparent;
border:0 none;
color:#FFFFFF;
height:17px;
margin:0 13px 0 0;
text-align:center;
width:17px; 

これに設定やトリックはありますか?代わりにレーベルを作ることを考えていましたが、スタイリングはどうですか?それらをどのように変換し、より良い方法がありますか、それが唯一の方法ですか?

回答:


706
<input type="text" value="3" class="field left" readonly>

スタイリングは必要ありません。

<input>MDN https://developer.mozilla.org/en/docs/Web/HTML/Element/input#Attributesを参照してください


4
または、すべてXML-yにしたい場合は、readonly = "readonly"を使用します。以下のStephan Mullerの例を参照してください:)
Algy Taylor

1
@Algy Taylor:ええ、それは元の質問に元の質問にある[xhtml]タグがあり、誰がどの標準に有効であるかについて
気が狂ったときだった

ときにホバーオーバーまで来ている赤い丸削除するどのような方法があるtextareaとのreadonly属性は?
Chaudhry Waqas

1
@Shafizadeh-いいえ、それは良いことです。ブラウザが正しく実装するのが難しく、人々が理解するのが難しいでしょう。単純なコントロールで複雑なタスクを実行しようとしないでください。入力を断片に分割し、各断片を単純にします(編集可能なコントロール、次に編集不可能なHTML要素、次に別の編集可能なコントロール)。
ToolmakerSteve

1
また、値を保持したくない場合は、このサーバー側を確認してください。ブラウザーの開発者ツールで属性を削除するのは簡単です。これにより、入力フィールドが再び編集可能になります。
カートファンデンブランデン


41

readonly入力のみを読み取りたい場合は、属性を使用できます。そしてdisabled、入力を表示したいが完全に無効にしたい場合は、属性を使用できます(PHPのような処理言語でさえ、それらを読み取ることができません)。


2
フォームをphpファイルに送信すると、無効な入力は読み取られません。それは彼が意味したことかもしれません。
Carlos2W 2016年

3
実際に発生するのは、フォームを送信するときに無効化された入力は送信されず、php、jsなどとは何の関係もないということです。
vasilevich 16

28

利用可能な回答を完了するためだけに:

入力要素は、読み取り専用または無効にすることができます(編集可能なものはありませんが、いくつかの違いがあります:フォーカスなど)。

良い説明はここで見つけることができます:
HTMLフォームの入力フィールドの無効=「無効」と読み取り専用=「読み取り専用」の違いは何ですか?

使い方:

<input type="text" value="Example" disabled /> 
<input type="text" value="Example" readonly />

ここで説明するように、CSSまたはJavaScriptを介してそれを行うためのいくつかのソリューションもあります


5
あなたが使用しようとしている場合は/>、あなたのタグを閉じるために、あなたは同様にあなたの属性を拡張することdisabled="disabled"readonly="readonly"、あまりにも。
BoltClock


3

readonly属性を追加する

<input type="text" value="3" class="field left" readonly="readonly" >

または-

<input type="text" value="3" class="field left" readonly>

CSSは必要ありません。


22
これは、私の答えと3年以上前のステファンの答えがまだそうでなかったという質問に何を追加しますか?CSSが不要であるという私の声明も反映されていました。
BoltClock

2

最後に無効を追加するだけです

<input type="text" value="3" class="field left" disabled>

1
無効に設定した場合、値は送信されません。それはあなたが必要とするものかもしれませんが、それは尋ねられたものではありません。
余談

2

追加readonly

<input type="text" value="3" class="field left" readonly>

値をフォームに送信しない場合は、代わりにdisabled属性を追加します。

<input type="text" value="3" class="field left" disabled>

これを常に行うCSSを使用する方法はありません。

どうして?CSSは何も「無効化」できません。表示または表示をオフにして使用することはできますpointer-events: nonepointer-events、IE 11より前にリリースされたバージョンのIEでは機能しません。


0

CSSを本当に使用したい場合は、次のプロパティを使用してフィールドを編集不可にします。

pointer-events: none;

ああ、ああ、ああ。これは一部のブラウザでは機能しません。
zixuan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.