ホームページ >ウェブフロントエンド >jsチュートリアル >イベントハンドラーを使用せずにHTMLのTextAreaに文字制限を適用するにはどうすればよいですか?

イベントハンドラーを使用せずにHTMLのTextAreaに文字制限を適用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-20 18:25:02377ブラウズ

How to Enforce Character Limits on TextAreas in HTML without Event Handlers?

JavaScript を使用した HTML での TextArea の文字制限の強制

JavaScript は、HTML の maxlength 属性によって提供される機能を拡張して、自動的にテキスト領域に文字制限を課す。このアプローチは、手動のイベント処理の必要性を排除することで、入力制限を強制する合理的かつ効率的な方法を提供します。

イベント ハンドラーを使用しない Maxlength の強制

制限する従来のアプローチテキストエリアの文字には、onkeypress や onkeyup などのイベント ハンドラーの使用が含まれます。ただし、複数のテキスト領域に制限を指定する必要がある場合、これは面倒になります。

JavaScript を使用すると、明示的なイベント処理をバイパスする、より洗練されたソリューションが可能になります。

<code class="javascript">window.onload = function() {
  // Retrieve all text areas on the page
  var txts = document.getElementsByTagName('TEXTAREA');

  // Loop through each text area
  for(var i = 0, l = txts.length; i < l; i++) {
    // If the textarea has a valid maxlength attribute (numeric value)
    if(/^[0-9]+$/.test(txts[i].getAttribute("maxlength"))) {
      // Define a function to handle maxlength enforcement
      var func = function() {
        var len = parseInt(this.getAttribute("maxlength"), 10);

        // Check if the input length exceeds the limit
        if(this.value.length > len) {
          // Alert the user and truncate the input
          alert('Maximum length exceeded: ' + len);
          this.value = this.value.substr(0, len);
          return false;
        }
      }

      // Assign the function to the onkeyup and onblur events
      txts[i].onkeyup = func;
      txts[i].onblur = func;
    }
  };
};</code>

実装の詳細

  • window.onload: ページが読み込まれたらスクリプトを実行します。
  • getElementsByTagName: 上のすべてのテキスト領域要素を取得します。 page.
  • Regex test: maxlength 属性が有効な数値であるかどうかを確認します。
  • func: 入力が正しいかどうかを確認する関数を定義します。長さが maxlength を超えているため、必要に応じて入力が切り捨てられます。
  • イベント処理: 有効な maxlength 属性を持つ各テキスト領域の onkeyup および onblur イベントに func 関数を割り当てます。

利点

  • 自動適用: 各テキスト領域の手動イベント処理を必要とせずに、文字制限が自動的に課されます。
  • 実装の容易さ: 提供されたスクリプトにより、複数のテキスト領域に最大長を適用するプロセスが簡素化されます。
  • モジュール式のアプローチ: 最大長の適用ロジックは、機能を使用すると、再利用やカスタマイズが簡単になります。

以上がイベントハンドラーを使用せずにHTMLのTextAreaに文字制限を適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。