• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力文字のバイト数)

入力文字のバイト数の制限についての質問

このQ&Aのポイント
  • 入力文字のバイト数の制限をしたいと考えている場合、バイト数をテキストボックスに表示させたいという要望があります。
  • 提供されたJavaScriptコードを参考にして、文字を入力するたびにバイト数がテキストボックスに表示されるように実装したいと思っています。
  • 具体的な実装方法について教えていただけると幸いです。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

入力文字数=バイト数ではないですが、 以下のような感じでどうでしょう ------------------------------------- function check(){ with(document.myFORM){ var n = myTEXT.value.length; if( n >10 ){ alert("入力文字が10文字を越えています"); return false; } myCOUNT.value=n; return true; } } <form name="myFORM"> <input name="myCOUNT" type="text" value="0"><br> <textarea rows="3" name="myTEXT" onKeypress="return check()"></textarea> </form>

wonder_dct
質問者

お礼

BLUEPIXY様 ご回答ありがとうございます。 提示していただいとものを参考に考えてみます。 ありがとうございました。

wonder_dct
質問者

補足

BLUEPIXYさん ご回答ありがとうございます。 ソースの提示までしていただき、感謝しております。 1つ質問なのですが、全角文字を入力してしまうとカウントができなく なってしまいます。 全角文字を入力した場合、「Enter」を押した時に入力した文字の バイト数がでるようにしたいと思っております。 バイト数は、escape() で求めるということは分かったのですが・・・ もう少しご教授お願いいたします。 よろしくお願いいたします。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>全角文字を入力してしまうとカウントができなくなってしまいます。 そうですね、全然チェックしてないですね。 いい加減ですみません<(_ _)> function check(){ with(document.myFORM){ var n = myTEXT.value.length; if( n >10 ){ alert("入力文字が10文字を越えています"); myTEXT.value= myTEXT.value.substring(0,10); } myCOUNT.value=n; } } <textarea rows="3" name="myTEXT" onKeyUp="Check()"> にしてみて下さい。 バイト数については、既に#1で言ったように、入力文字数=バイト数ではないので、なんとも言えないですね。 通常(?)というか新しめのブラウザでは、内部的には文字はユニコードで表されていて、いわゆる半角=1バイト、全角=2バイトではありません。 送信された時の文字コードで(全角)一文字が表されるバイト数は変化するので、その場合でも、ちゃんとしたバイト数を求めるのは(javascriptとしてそういう機能の提供がないので)困難です。 (多分ブラウザによって結果が変わることになると思います) 便宜的に、文字コードが255以下のモノを1バイトとしてカウントすることはできるかもしれませんが、(表記上と実際が異なるので)あまり意味のあることではありません。

関連するQ&A

専門家に質問してみよう