• ベストアンサー

フォームの<textarea>の最大文字数を制御する方法

HTMLタグの<textarea>から入力された文章に 入力時やフォーム送信前に文字数制限をかける方法が見つかりません。 何か良い方法があれば教えてください。 CGI側で判定するしかないのでしょうか。

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

  • ベストアンサー
  • elttac
  • ベストアンサー率70% (592/839)
回答No.1

 JavaScript でオブジェクトの value.length を評価するとよいでしょう。  以下にサンプルコード(300 字までの場合)を示しますので,参考になさってください。 <HTML> <HEAD> <TITLE>Form sample</TITLE> <SCRIPT TYPE="text/javascript"> <!-- function check() { if (document.theform.requiredtext.value.length > 300) { alert("文字数をオーバーしています。"); return false; } return true; } // --> </SCRIPT> </HEAD> <BODY> <FORM NAME="theform" ACTION="" ONSUBMIT="return check();"> <TEXTAREA ID="requiredtext" NAME="requiredtext" ROWS="4" COLS="80"> </TEXTAREA> <INPUT TYPE="submit"> </FORM> </BODY> </HTML>

noname#10831
質問者

お礼

おおっ すばやい回答ありがとうございます 極力javascriptを使うことを避けていたのですが、 この用途にぴったりだと思いました(^^ javascriptを無効にしてまでオーバーした書き込みをする相手には CGI側で処理すればいい・・・ですよね?

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • elttac
  • ベストアンサー率70% (592/839)
回答No.2

 No. 1 の回答をつけた者です。  はい,おっしゃるとおり,JavaScript などの「クライアントサイドスクリプト」は「サーバまで送らないといけなかったような処理をクライアント側で済ませる」のに適しています。  以前,マルチラインテキストボックスを,字数制限のもとで書きやすくするために,「文字数カウント」のボタンも設け,字数をカウントして表示させるスクリプトを走らる気の利いたサイトも見たことがあります。  JavaScript が無効になっていた場合もおっしゃるとおりで,CGI プログラムの側でもチェックしなければなりません。  もっと悪質な場合として,フォームを偽装して巨大データをポストすることも考えられますし。

すると、全ての回答が全文表示されます。

関連するQ&A