テキストエリアの残りの単語数を動的に取得する方法

テキストエリアの残りの単語数を動的に取得する方法

仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き上げました。とても達成感がありました。もちろん、これは JS の専門家にとっては何でもないことですが、私自身の JS 能力にとっては小さな前進です。

事例紹介: 一部の Web サイトにはテキストエリア テキスト ボックスがよくあります。入力すると、下にテキスト プロンプトが表示され、あと何語入力できるかが表示されます。今日はこの機能を実装します。もちろん、ページには複数のテキストエリアがあるため、単一の js ロジックを使用してそれらを制御することはできないため、少しカプセル化する必要があります。もちろん、私のカプセル化にはまだいくつかの欠落がありますが、基本的な機能は実現されています。

まず、単一のテキストエリアの実装例を紹介しましょう。

HTML部分:

XML/HTML コードコンテンツをクリップボードにコピー
  1. <テキストエリア  id = "text_txt1" > </テキストエリア>   
  2. <スパン  id = "num_txt1" >残り 600 文字</ span >   

js部分:

JavaScriptコードコンテンツをクリップボードにコピー
  1. $(関数() {
  2. $( '#text_txt1' ).on( 'keyup' ,関数(){
  3.         var txtval = $( '#text_txt1' ).val().length;
  4. コンソールログ(txtv​​al);
  5.        var str = parseInt(600-txtval);
  6. コンソールログ(str);
  7.          (文字列>0)の場合{
  8. $( '#num_txt1' ).html( '残りは' +str+ '文字を入力できます' );
  9. }それ以外{
  10. $( '#num_txt1' ).html( '残り0文字' );
  11. $( '#text_txt1' ).val($( '#text_txt1' ).val().substring(0,600)); //これは、内部のテキストが 0 以下の場合、単語数を増やすことができず、600 語までしか増やせないことを意味します。   
  12. }
  13.          //console.log($('#num_txt').html(str));   
  14. });
  15. })

次に、同じページに複数のテキストエリアを配置する実装例を紹介します。

JavaScriptコードコンテンツをクリップボードにコピー
  1. 関数changeLength(obj,num){
  2. obj.on( 'keyup' ,関数(){
  3.      var txtval = obj.val().length;
  4.          //コンソール.log(txtv​​al);   
  5.          var str = parseInt(600-txtval);
  6.          // コンソールログ(str);   
  7.          (文字列>0)の場合{
  8. num.html( '残りの入力' +str+ '単語数' );
  9. }それ以外{
  10. num.html( '残り0文字' );
  11. obj.val(obj.val().substring(0, 600));
  12. }
  13.          //console.log($('#num_txt').html(str));   
  14. });
  15. }
  16. $( function (){ // ここには4つあるので4回呼び出します  
  17. 長さを変更します($( '#text_txt1' ),$( '#num_txt1' ));
  18. 長さを変更します($( '#text_txt2' ),$( '#num_txt2' ));
  19. 長さを変更します($( '#text_txt3' ),$( '#num_txt3' ));
  20. 長さを変更します($( '#text_txt4' ),$( '#num_txt4' ));
  21. });

もちろん、ここで実際に必要な単語の数も関数内にカプセル化できますが、ここではそうしません。このように、テキストを入力すると、スパン内に残りの単語数が自動的に表示されます。入力値が最大値に達すると、残りの単語数は 0 と表示され、新しいコンテンツを入力することができなくなります。テキストを削除する場合、span は残りの単語数を動的に取得できます。

以下は他の人のコードです。今回も書き方を少し拝借しました。

html:

XML/HTML コードコンテンツをクリップボードにコピー
  1. < div  クラス= "family_v2" >   
  2.      < 10 ...   class = "nickname_v2" >はじめに: </ p >   
  3.       <テキストエリア  id = "コンテンツ"  名前= "サイン"  スタイル= "高さ:60px;オーバーフロー-y:hidden;"   
  4.       onkeyup = "changeLength(this,60)"  クラス= "ニックネームボックス_v2 ブリーフボックス_v2" >   
  5.       </テキストエリア>   
  6.       < div  クラス= "limit_num_v2" >   
  7.           < h3 > 60 </ h3 >   
  8.      </div>   
  9.   </div>   

js:

JavaScriptコードコンテンツをクリップボードにコピー
  1. //テキストエリアの長さを確認する  
  2. 関数changeLength(obj,lg){
  3.      var len = $(obj).val();
  4. $(obj).next().find( "h3" ).text(lg-len.length);
  5.      (len.length>=lg)の場合{
  6. $(obj).next().find( "h3" ).text(0);
  7. $(obj).val(len.substring(0,lg));
  8. }
  9. }

テキストエリアの残りの単語数を動的に取得する方法に関する上記の記事は、エディターがあなたと共有するすべてのコンテンツです。これが参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

<<:  JavaScript で動的な QML オブジェクトを作成する方法

>>:  スタイル属性 (element.style) で定義されたインライン スタイルを削除する方法

推薦する

Vueはタブ切り替えを実装します

この記事では、タブ切り替えを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

JavaScript で実装された 6 つの Web ページ画像カルーセル効果の詳細な説明

目次1. マウスがカルーセル モジュール上を通過すると、左右のボタンが表示され、モジュールを離れると...

JavaScript の onblur および onfocus イベントの詳細な説明

HTML ページでは、ボタンやテキスト ボックスなどの視覚要素にフォーカスを設定したり、フォーカスを...

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

MySQL データベースのインストールと Navicat for MySQL の使用に関するチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

VUEはG2チャートを使用した実装を導入します

目次G2チャートについて使用テンプレートで使用される完全なコード (棒グラフ)世界地図を追加するG2...

MySQL 8.0ドライバとAlibaba Druidバージョン間の互換性の問題を解決

この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

xshellリモート接続の自動切断の問題の解決方法の詳細な説明

xshell を使用したリモート接続システムの自動切断の問題の解決策: 1. サーバー構成サーバーは...

GTK ツリービューの原理と使用法の分析

GtkTreeView コンポーネントは、美しい通常のリストやツリーのようなリストを作成できる高度な...

Visual Studio Codeを使用してMySqlデータベースに接続し、クエリを実行します。

Visual Studio Code は、Microsoft が開発した強力なテキスト エディター...

Linux のバックグラウンドで & と nohup を使用する方法

ターミナルやコンソールで作業しているときは、メールを読むなど、もっと重要な作業があるかもしれないので...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

Gogs+Jenkins+Docker による .NetCore ステップの自動デプロイ

目次環境説明DockerのインストールゴグのインストールDocker で .NetCore サービス...

JSはマップを使用してdouble配列を統合します

目次序文データのシミュレーション結合されたデータ合併のアイデアコードの表示と分析最初のステップステッ...