【画像付き解説】JavaScript/jQuery/CSSで実現!HTMLテキストボックスにヒントを表示する4つの方法

2024-04-05

HTMLテキストボックスが空の場合にヒントを表示する方法

placeholder 属性は、テキストボックスが空の場合に表示されるヒントテキストを設定するために使用されます。これは、HTML5で導入された新しい属性です。

<input type="text" placeholder="名前を入力してください">

title 属性は、ツールチップを表示するために使用されます。テキストボックスが空の場合にヒントを表示するには、title 属性にヒントテキストを設定します。

<input type="text" title="名前を入力してください">

JavaScriptを使うと、より高度なヒント機能を実装することができます。例えば、以下のようなコードを使って、テキストボックスが空の場合にヒントを表示することができます。

<input type="text" id="name">

<script>
var nameInput = document.getElementById("name");

nameInput.onfocus = function() {
  if (nameInput.value === "") {
    nameInput.placeholder = "名前を入力してください";
  }
};

nameInput.onblur = function() {
  if (nameInput.value === "") {
    nameInput.placeholder = "";
  }
};
</script>

このコードは、テキストボックスにフォーカスが当たるときにヒントテキストを表示し、フォーカスが外れたときにヒントテキストを非表示にします。

<input type="text" id="name">

<script>
$(document).ready(function() {
  $("#name").placeholder("名前を入力してください");
});
</script>

このコードは、placeholder 属性を使ってヒントテキストを設定します。

ヒント

  • ヒントテキストは、簡潔で分かりやすいものにしてください。
  • ヒントテキストは、ユーザーが何をすべきかを明確に示すようにしてください。



HTML

<input type="text" id="name" placeholder="名前を入力してください">

JavaScript

var nameInput = document.getElementById("name");

nameInput.onfocus = function() {
  if (nameInput.value === "") {
    nameInput.placeholder = "名前を入力してください";
  }
};

nameInput.onblur = function() {
  if (nameInput.value === "") {
    nameInput.placeholder = "";
  }
};

jQuery

$(document).ready(function() {
  $("#name").placeholder("名前を入力してください");
});



HTMLテキストボックスが空の場合にヒントを表示する他の方法

<input type="text" id="name">

<style>
#name:empty {
  color: gray;
  font-style: italic;
}
</style>

このコードは、テキストボックスが空の場合に、ヒントテキストを灰色で斜体で表示します。

aria-label 属性は、スクリーンリーダーなどの補助技術で使用されるヒントテキストを設定するために使用されます。

<input type="text" id="name" aria-label="名前を入力してください">
<input type="text" id="name">

<img src="hint.png" alt="名前を入力してください" style="display: none;">

<script>
var nameInput = document.getElementById("name");
var hintImage = document.querySelector("img");

nameInput.onfocus = function() {
  hintImage.style.display = "none";
};

nameInput.onblur = function() {
  if (nameInput.value === "") {
    hintImage.style.display = "block";
  }
};
</script>

javascript html


JavaScriptとECMAScriptを使いこなして、Web開発をもっと楽しく!

ECMAScriptは、JavaScriptの標準仕様を定めたものです。ECMA Internationalという非営利団体によって策定され、JavaScriptのコアとなる構文、型、オブジェクトなどを定義しています。一方、JavaScriptは、ECMAScriptに基づいて実装されたプログラミング言語です。具体的には、ブラウザやサーバーサイドエンジンで動作するJavaScriptのことを指します。...


Moment.jsとdate-fnsで実現するJavaScriptからMySQLの日付時刻変換

JavaScript で取得した日付時刻を、MySQLデータベースに格納するために、MySQL の DATETIME 型に変換する必要があります。方法主に以下の2つの方法があります。Date オブジェクトを使うJavaScript の Date オブジェクトを作成します。...


【JavaScript】jQuery & フォーマットライブラリで数字を賢くフォーマット!1000以上は「2.5K」、それ以外はそのまま

このコードは、JavaScript、jQuery、およびフォーマットライブラリを使用して、数字を特定の条件に基づいてフォーマットします。具体的には、以下の動作を行います。1000 以上の場合: 数字を小数点第一位まで表示し、その後に "K" を追加します。例: 2500 -> 2.5K...


JavaScript、React、単体テストにおけるエクスポート定数モックの徹底ガイド

Jest での単体テストにおいて、エクスポートされた定数をモックすることは、テスト対象のコンポーネントやモジュールの動作を分離して検証する際に役立ちます。しかし、定数は通常再割り当てできないため、モックするのが難しい場合があります。このチュートリアルでは、JavaScript、React、単体テストの文脈において、エクスポートされた定数をモックする方法を分かりやすく解説します。...


JavaScript、Node.js、React.jsで遭遇する「Failed to compile. Module not found: Can't resolve 'react-router-dom'」エラーを解決する方法

"Failed to compile. Module not found: Can't resolve 'react-router-dom'" エラーは、Reactアプリケーションで react-router-dom パッケージがインストールされていないか、正しく設定されていない場合に発生する一般的なエラーです。このエラーは、ビルドまたは実行時に発生する可能性があります。...