PR

テキストボックスにテキストを入力すると テキストの文字数をカウントするテキストボックスを作成しました!【サンプルコードあり】

HTML CSS

今回は テキストボックスにテキストを入力すると テキストの文字数をカウントするテキストボックスを作成しました

作成したのはこんな感じのものになります。
指定した文字数を超える場合は エラーが表示されるようなテキストボックスを作成してみました。

テキストエリア内の最大文字数設定が可能で文字を記入すると文字数がカウントされ
設定した文字数以上になるとエラー表示されそれ以上記入できない仕様です。

例えば、SNSやブログ投稿での文字数制限に役立つ感じになっています。

最後に グーグルクロームの拡張機能に登録までやりました

今回作成したコード

今回作成したコードは、まずHTMLでテキストエリア・CSSでデザインの基本構造を作成
JavaScriptで、入力内容の文字数をカウントし、設定した制限を超えた場合にアラートが出るように処理を追加。

また、manifest.jsonも使用し、Google Chromeの拡張機能としてインストール可能にすることで、ブラウザで手軽に使えるようにしました。

HTMLコード

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>テキストカウンター</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="textarea-wrap">
    <textarea name="textcounter" id="textarea" cols="40" rowa="10"></textarea>
    <p><span class="count">0</span>文字入力中です。</p>
    <div class="error-message"></div><!-- /# -->
  </div>
  <script src="main.js"></script>
</body>
</html>

CSSコード

@charset "utf-8";

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.textarea-wrap {
  width: 100%;
  padding: 2rem;
}

#textarea {
  /* width: 100%; */
  height: 10rem;
  margin-bottom: 1rem;
}

.error-message {
  color: red;
  display: none;
}

JavaScriptコード

const textarea = document.querySelector('#textarea');
const count = document.querySelector('.count');
const errorMessage = document.querySelector('.error-message');
const maxLength = 140; // ここで文字数制限

textarea.addEventListener('input', () => {
  let sentence = textarea.value;
  if (sentence.length > maxLength) {
    textarea.value = sentence.slice(0, maxLength);
    errorMessage.textContent = `最大文字数を超えました。${maxLength}文字以内で入力してください。`;
    errorMessage.style.display = 'block';
  } else {
    errorMessage.style.display = 'none';
  }
  count.innerHTML = textarea.value.length;
});

manifest.jsonコード

{
  "manifest_version": 3,
  "name": "テキストカウンター",
  "description": "テキストカウンターです",
  "version": "1.0",
  "action": {
    "default_popup": "index.html"
  },
  "icons": {
    "16": "icon16.png",
    "48": "icon48.png",
    "128": "icon128.png"
  }
}

YouTube動画はこちら

スポンサーリンク

ハードな通信をする方におすすめ!専用帯域で高速インターネット!
hi-hoひかりから、ゲームに特化した回線「hi-hoひかりwith games」が新登場。
ラグ・遅延を抑えて勝利を掴め!

hi-ho with games

オンラインゲーム・配信者向けインターネット
月額4,400円~
日本最大級 プロ愛用のゲーム専用インターネット光回線

HTML CSS
inoproをフォローする

コメント

タイトルとURLをコピーしました