• ベストアンサー

文字数カウント

文字数をチェックするスクリプトがほしいです。 ネットで色々見たんですが、なかなか理解できません。。 本当に簡単で分かりやすいものが希望です。 1つ1つ説明を付けていただけるとありがたいです。 宜しくお願いします。 リアルにカウントするものではなくて、 「カウントする」というボタンを押すと 数字が表示されるものを希望しています。 本当に初心者なんで詳しく説明していただけると 喜びます。 それでは宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>ブラウザ上に表示する の仕様がどうしたいのかわかりません。 とりあえず直前のテキストボックスにでもいれておきますか? (テキストエリアの場合改行を数えるかどうかも決める必要があります) <script> function check(obj){ var n=obj; while(n){ if(n.nodeName=="TEXTAREA"){var ta=n;break;} n=n.previousSibling; } var n=obj; while(n){ if(n.nodeName=="INPUT" && n.type=="text"){var tb=n;break;} n=n.previousSibling; } tb.value=ta.value.replace(/[\n\r]/g,"").length; } </script> <form> <p> <textarea> これはテストです! </textarea><br> 文字数:<input type="text"> <input type="button" value="カウントする" onclick="check(this)"> </p> <p> <textarea> this is test !? </textarea><br> 文字数:<input type="text"> <input type="button" value="カウントする" onclick="check(this)"> </p> </form>

ke---ta
質問者

補足

あっこんな感じです! 出来れば 行数の場合も1字文字増えるようにしてほしいです。。 わがままですいません。。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

じゃたとえばこんなとか tb.value=ta.value.replace(/(\r\n|\r)/g,"\n").length; テキストエリア自体の最後の行の改行とかカウントされてるのが きにいらなければ tb.value=ta.value.replace(/(\r\n|\r)/g,"\n").replace(/\n$/g,"").length; とか・・・

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

No.1と同じですが… onchangeなのでエリア外側に出たときに反映します。 <html> <body> 文字列: <input type="text" value="" onChange="document.getElementById('L').innerHTML=this.value.length"> <p> 文字数:<span id="L"></span> </body> </html>

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なんの文字数をカウントするのでしょうか? とりあえずダイレクトに指定する例でいえばこんな感じ <input type="button" value="カウントする" onclick="alert('abc123あいう'.length)"> あとは参照する方法など工夫すればいいですね

ke---ta
質問者

補足

すいません。 説明不足でした。。 textareaに書いた文章の時数を調べたいんです。 alertではなくて、ブラウザ上に表示していただいて構いません。 あとスクリプト全て書いていただけたら嬉しいです。。

関連するQ&A