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

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

HTMLのinput要素に設定できるreadonly属性は、入力フィールドの値をユーザーが編集できないようにするための属性です。readonlyを指定した入力欄は変更できませんが、値を選択してコピーすることは可能です。フォームで既定値を表示したい場合や、ユーザーに内容を確認させつつ修正はさせたくない場合に便利です。

以下に、readonly属性を使用した具体的なサンプルコードを紹介します。

サンプルコード

<!DOCTYPE html>
<html>
<head>
<title>Input Email readOnly</title>
<style>
    form {
        width:70%;
        margin: 0 auto;
        text-align: center;
    }
    * {
        padding: 2px;
        margin:5px;
    }
    input[type="button"] {
        border-radius: 10px;
    }
</style>
</head>
<body>
<form>
<fieldset>
<legend>Email-readOnly</legend>
<label for="EmailSelect">Contact Us :
<input type="email" id="EmailSelect" onclick="showErrorMsg()" value="infoHelpDesk@MNC.com" readOnly>
</label>
<input type="button" onclick="showMessage()" value="Copy Email Id">
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
    var divDisplay = document.getElementById("divDisplay");
    var inputEmail = document.getElementById("EmailSelect");
    divDisplay.textContent = 'Above email is read-only';
    function showMessage() {
        inputEmail.select();
        document.execCommand('copy');
        divDisplay.textContent = 'Email Copied: '+inputEmail.value;
    }
    function showErrorMsg(){
        divDisplay.textContent +=', This cannot be edited.'
    }
</script>
</body>
</html>

このコードを実行すると、以下のような動作になります。

1) 「Copy Email Id」ボタンをクリックする前

メールアドレスが入力された状態で表示され、画面には「このメールは読み取り専用です」というメッセージが表示されます。

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

2) 「Contact Us」のメール入力欄をクリックした場合

readonly属性が設定されているため、メールアドレスを編集しようとしても変更できず、「編集できません」というメッセージが表示されます。

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

3) 「Copy Email Id」ボタンをクリックした場合

JavaScriptのselect()メソッドとexecCommand('copy')によって、メールアドレスがクリップボードにコピーされ、コピーされた内容が画面に表示されます。readonly属性が付いていてもコピーは可能であることが分かります。

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

readonly属性のポイント

・readonly属性を指定すると、ユーザーは入力欄の値を編集できなくなりますが、選択やコピーは自由に行えます。
・disabled属性と似ていますが、disabledの場合は値の選択やコピー、フォーム送信時のデータ送信も行われません。readonlyであればフォーム送信時に値がサーバーへ送信される点が異なります。
・JavaScriptからは値の変更が可能なため、動的に値を更新したい読み取り専用フィールドにも利用できます。


  1. HTMLのlist属性とは?datalistと組み合わせた入力候補の実装方法

    HTMLのlist属性は、<input>要素に対して、あらかじめ定義された選択肢(候補)を含む<datalist>要素を関連付けるための属性です。この属性を使うことで、ユーザーがテキストを入力する際に候補が自動的に表示され、入力の手間を大幅に減らすことができます。例えば、フォームで「選択科目」を入力してもらう場合、あらかじめ用意した科目名のリストから選べるようにできるため、入力ミスの防止にも役立ちます。list属性の基本構文list属性の基本的な書き方は以下の通りです。<input list=テキスト>list属性には、関連付けたい<datalist&

  2. HTMLのmaxlength属性とは?入力文字数を制限する方法を実例付きで解説

    maxlength属性とは HTMLのmaxlength属性は、フォームのinput要素に入力できる最大文字数を定義する属性です。この属性を指定すると、ユーザーが設定した文字数を超えて入力できなくなるため、入力ミスや不正なデータの送信を防ぎ、データの整合性を保つことができます。 例えば、電話番号や郵便番号など「桁数が決まっている情報」の入力欄に活用すれば、ユーザーにとって分かりやすく、開発者にとっても扱いやすいフォームを作成できます。 基本構文 maxlength属性の基本的な記述方法は以下のとおりです。 <input maxlength="最大文字数"> 属