• ベストアンサー

入力フォーム内の字数制限

400字以内の作文を打って送ってもらおうと思い、 入力フォームを作ろうとしたのですが、 どの本にも文字数制限の事が載っていなくて困っています。 どなたかご存じな方、お教え願えないでしょうか? どうぞよろしくお願い致します。

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

  • ベストアンサー
  • 665
  • ベストアンサー率72% (18/25)
回答No.6

送信しようとした際に文字数チェックを行うものです。 最大文字数を越えていた場合は、送信できないようになっています。 フォーム <form action="***" method="post" onsubmit="return checkForm(this)"> <p><input type="submit" value="送信"></p> <p><textarea name="input1"></textarea></p> </form> JavaScript <script type="text/javascript> <!-- function checkForm(obj) { var maxLen = 400;// 最大文字数 if (obj.input1.value.length > maxLen) { alert(maxLen + "文字以内で入力してください。"); return false; } else { return true; } } //--> </script> また、改行文字を無視するならこのようになります。 <script type="text/javascript> <!-- function checkForm(obj) { var maxLen = 400;// 最大文字数 if (obj.input1.value.replace(/\r|\n/g, "").length > maxLen) { alert(maxLen + "文字以内で入力してください。"); return false; } else { return true; } } //--> </script> 一応言っておくと、JavaScriptを無効にすれば何文字でも送信できるので、必ずCGI側でもチェックを行うようにしてください。

uoriki
質問者

お礼

とても詳しい解説とソースをありがとうございます。 力不足なりに目指していた高き目標は、まさに、665さまが教えて下さった「最大文字数を越えていた場合は、送信できない」というものでしたが、 CGIのチェックをしなければならないのは…全くわからないので残念です。これからは CGIの勉強を少ししようと思います。 この場をおかりして、みなさん本当にどうもありがとうございました!

その他の回答 (5)

  • kesokeso
  • ベストアンサー率0% (0/1)
回答No.5

syonepさんのようにHTMLでmaxlengthで制御するとよいと思います。 <input type="text" size="30" maxlength="400"> 注意点として全角や半角、そして環境によってばらける、というのがありますが(参考URL)

参考URL:
http://www.phoenix-c.or.jp/~zspc/cgi-bin/wwwlng.cgi?print+2000-08/00080016.txt
  • kesokeso
  • ベストアンサー率0% (0/1)
回答No.4

syonepさんのようにHTMLでmaxlengthで制御するとよいと思います。 <input type="text" size="30" maxlength="400"> 注意点として全角や半角、そして環境によってばらける、というのがありますが(参考URL)

参考URL:
http://www.phoenix-c.or.jp/~zspc/cgi-bin/wwwlng.cgi?print+2000-08/00080016.txt
uoriki
質問者

お礼

参考URLどうもありがとうございます。 CGIもASPも全く知識がないのですが、とりあえずみなさまがご助言してくださったMaxLengthをもう少し自分なりに調べて使ってみようと思っています。

  • cookei
  • ベストアンサー率33% (4/12)
回答No.3

テキストエリアの文字数チェックはJavaScript側で行場合が多いです。 ↓----------------------------------------- <html> <head> <script language="javascript"> <!-- function checkLength() { var intMaxLength = 400; if (eval(document.form1.input1.value.length) > intMaxLength) { alert(intMaxLength + "字以下で入力してください。"); document.form1.input1.focus(); } } --> </script> </head> <body> <form name="form1"> <textarea name="input1" rows="5" onblur="checkLength();"></textarea> </form> </body> <html>

uoriki
質問者

お礼

ソースを打っていただきまして感謝します! 入力フォームのかたちは、Perl(?)だったりCGIを使ったりいろいろあることがなんとなくわかってきてJavaScript で大丈夫なのかな? と思い始めていたので、安心しました。 どうもありがとうございました。

  • Gimli
  • ベストアンサー率47% (9/19)
回答No.2

作文なので、テキストエリアを使用しますよね。 ↓これはどうでしょう。 http://www.openspc2.org/reibun/javascript/form_textarea/005/index.html

参考URL:
http://www.openspc2.org/reibun/javascript/form_textarea/005/index.html
uoriki
質問者

お礼

こんなHPがあるのですね。 初心者の私は、ちょっと難しいと思ってしまいましたが、とても参考になりました。 どうもありがとうございました☆

  • syonep
  • ベストアンサー率26% (64/242)
回答No.1

<input type="text" max=800> じゃだめですか?

uoriki
質問者

お礼

お早い回答をどうもありがとうございました。 JavaScriptは初心者なので、助かりました。

関連するQ&A