HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTMLのreadOnly属性とは?読み取り専用フィールドの使い方を解説

HTMLのreadOnly属性は、<input>要素や<textarea>要素を読み取り専用にするための属性です。この属性を指定すると、ユーザーはフォームフィールドの内容を編集できなくなりますが、テキストの選択やコピーは引き続き可能です。

readOnly属性の基本構文

readOnly属性は論理属性(ブール型属性)のため、値を指定せずに記述します。基本構文は以下の通りです。

<tagname readOnly></tagname>

readOnly属性が使える要素

readOnly属性を指定できるのは、テキスト入力系の要素のみです。主な対象は以下の通りです。

  • <input type="text"> などテキスト入力系のtypeを持つinput要素
  • <textarea>

なお、チェックボックス・ラジオボタン・セレクトボックスなどにはreadOnly属性は適用されません。これらを操作不可にしたい場合は、disabled属性を使用します。

使用例

実際にreadOnly属性を使ったサンプルコードを見てみましょう。

<!DOCTYPE html>
<html>
<style>
    body {
        color: #000;
        height: 100vh;
        background-color: #8BC6EC;
        background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
        text-align: center;
    }
    input {
        display: block;
        width: 50%;
        margin: 1rem auto;
        text-align: center;
    }
</style>
<body>
<h1>HTML readOnly Demo</h1>
<input type="text" value="I'm an input element with readOnly property" readOnly>
</body>
</html>

出力結果

上記のコードを実行すると、テキストボックスには初期値が表示されますが、クリックしてフォーカスを当てても内容を編集することはできません。

HTMLのreadOnly属性とは?読み取り専用フィールドの使い方を解説

readOnly属性とdisabled属性の違い

どちらもフィールドを操作不能にする属性ですが、挙動には重要な違いがあります。

項目readOnlydisabled
フォーム送信時の値送信される送信されない
テキストの選択・コピー可能不可能
Tabキーでのフォーカス移動可能不可能

JavaScriptでの動的制御

JavaScriptからはelement.readOnlyプロパティを使って、読み取り専用状態を動的に切り替えることもできます。

// 読み取り専用にする
document.getElementById("myInput").readOnly = true;

// 編集可能に戻す
document.getElementById("myInput").readOnly = false;

このようにreadOnly属性を活用すれば、注文番号や計算結果など「ユーザーには見せるが編集させたくない」データを、フォーム送信の対象に含めながら安全に表示できます。

  1. HTMLのwrap属性とは?textareaのテキスト折り返し設定を解説

    wrap属性とは HTMLのwrap属性は、<textarea>要素内のテキストを、フォーム送信時にどのように折り返すかを定義する属性です。画面上での見た目だけでなく、サーバーへ送信されるデータに改行コードを含めるかどうかを制御できる点が特徴です。 指定できる値 soft:画面上では自動的に折り返して表示されますが、送信されるテキストには改行コードが挿入されません(デフォルト値)。 hard:画面上の折り返し位置に基づいて、フォーム送信時に改行コードが挿入されます。この値を使用する場合はcols属性の指定が必須です。 構文 wrap属性の基本的な書き方は以下のとおりです。

  2. HTMLのdraggable属性とは?使い方とサンプルコードを解説

    HTMLのdraggable属性とはHTML DOMのdraggable属性は、要素がドラッグ可能かどうかを示す真偽値(boolean)を取得・設定するための属性です。この属性を活用することで、ドラッグ&ドロップ操作に対応したインタラクティブなWebページを簡単に実装できます。注意:リンク(<a>タグ)や画像(<img>タグ)は、デフォルトでドラッグ可能に設定されています。draggable属性に指定できる値true … 要素をドラッグ可能にするfalse … 要素をドラッグ不可にするauto … ブラウザのデフォルト動作に従うHTML draggable属性の使用例以