JavaScript(jQuery)で、フォーム内の文字数をリアルタイムでカウントする方法
JavaScript(jQuery)で、フォーム内の文字数をリアルタイムでカウントしたい!
こんにちは、はるまきです。今回は「自作Webサービス解説シリーズ」です。今回で第11回目!
自作Webサービスのアクアリウム専門の質問サイト→ Q&Aquarium
このシリーズでは、初学者の僕が学んだことや、ハマったポイントなどを紹介しています。間違っている箇所があればご指摘お願いします。※あくまで僕(はるまき)流の解釈をもとに作成しています。
実際のコード
実現するコードは以下。僕が自作Webアプリで使っているものを持ってきました。
<p>文字カウント: <span id="moji_suu">0</span> 字/400字 </p>//ここにカウント数が表示される。spanの中のテキストが変更される。 <textarea limit="400" id="questionContents" name="question"></textarea>//文字入力フォーム。limit=400に設定
$(function(){ /*文字数カウント */ //カウントするフィールドを監視 //キーダウンで発火 $("#questionContents").keydown(function(){ //現在入力されている文字を取得 var text = $(this).val(); //正確にカウントするため改行コード削除 text = text.replace((new RegExp("\r\n","g")),""); text = text.replace((new RegExp("\n","g")),""); //現在の文字数 var count = text.length; //設定した上限文字数 //limitの値を変更すると上限値を変えれます。 var moji_limit = $(this).attr("limit"); //文字数をリアルタイムの表示 $("#moji_suu").text(count); //処理分け if(count == 0){ //字を消して0文字となった場合。 $("#moji_suu").text("0"); } else if(count > moji_limit) { //上限文字数を超えたら赤色表示 $("#moji_suu").css("color", "red"); } else { //文字数が範囲内なら色を戻す $("#moji_suu").css("color", ""); } }); });
最後に
今回は以上です。 自作Webサービスのアクアリウム専門の質問サイト → Q&Aquarium
このシリーズでは、初学者の僕が学んだことや、ハマったポイントなどを紹介しています。間違っている箇所があればご指摘お願いします。※あくまで僕(はるまき)流の解釈をもとに作成しています。 次回もお楽しみに〜