ホームページ作成/フォームの活用・装飾 (HTML,CSS,JavaScript)

テキスト入力欄の文字数をリアルタイム表示(3ページ目)

テキスト入力欄にユーザが何かを入力する際に、現在の入力文字数をリアルタイムに表示するようにしてみましょう。入力文字数に制限のある入力欄などで活用すると便利です。入力可能な残り文字数の表示もできます。

西村 文宏

執筆者:西村 文宏

ホームページ作成ガイド

1-2. カウントして表示するJavaScriptを書く

次に、文字数をカウントして表示するためのJavaScriptを記述します。 これは、以下のソースをそのままコピー&ペーストするだけで構いません。(修正不要です。)

<script type="text/javascript"><!--
function ShowLength( idn, str ) {
   document.getElementById(idn).innerHTML = str.length + "文字";
}
// --></script>

上記では、先ほどのonkeyupイベントハンドラで呼び出される「ShowLength」関数を作っています。 処理内容は非常に簡単で、第2引数(str)で渡された文字列の長さ(length)を数えて、 第1引数(idn)で渡された名称でidが振られている要素の内容(innerHTML)を書き換えているだけです。

上記のJavaScriptについて、簡単に解説しておきます。(読み飛ばしても構いません。上記のソースはそのままコピー&ペーストするだけで動きますから。)

●function ShowLength( idn, str ) {

「ShowLength」という関数を作っています。1つ目の引数(idn)は、文字数を表示する要素に割り振られたID名です。 2つ目の引数(str)には、ユーザが入力欄に入力した文字列がそのまま含まれています。

str.length + "文字"

変数strにはユーザが入力した文字列が格納されています。 「str.length」のようにlengthプロパティを参照することで、その文字数が得られます。(例えば、120など) その直後に「文字」という文字列を加えることで、「120文字」などのような文字列ができあがります。
この「文字」という文字列は、何でも自由に書き換えて構いません。「もじ」に書き換えれば「120もじ」などのように表示されます。何でも記述できますが、引用符で囲むのを忘れないで下さい。

●document.getElementById(idn).innerHTML

あとは、getElementByIdメソッドにID名(idn変数)を渡すことで出力位置を特定し、 innerHTMLプロパティを使って、対象の要素の内容を書き換えています。
※したがって、getElementByIdメソッドやinnerHTMLプロパティの扱えない、かなり古いブラウザでは動きません。

以上で、テキストエディタのステータスバーなどのように、「入力された文字列の数をカウントして表示」する機能ができあがります。

上記のHTML・JavaScriptを表示させると、以下のように見えます。
実際に入力欄に何か入力してみて下さい。文字数がリアルタイムに変化するはずです。

0文字

0文字

なお、同一ページ内に入力欄をいくつ設置する場合でも、JavaScriptソースの記述は1つだけで構いません。

次に、指定した文字数からカウントダウンして表示するソースをご紹介いたします。

指定文字数からカウントダウンする場合のソースへ >>

  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 6
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます