CGI-BBS > 基礎 > その他 > テキストエリアに字数制限は可能?


カレッヂ
カレッヂ


質問者 ada  投稿日 10/30(火) 16:16:22
TEXTAREAに字数制限を設けたいのですが(ブラウザ表示のみOKです)、HTMLの記述だけでは無理でしょうか?
どなたかご存知ありませんか?
回答者 呑兵衛@大阪  [削除]  投稿日 11/1(木) 12:42:54
HTML上と言うことなので、JavaScriptで動かします。
shift_jisを前提にします。
半角・全角・空白を一文字で計算し、改行はいくつあっても Win、Macともに無視します。
改行も一文字として数えるなら、
var len = tmp.replace(/[\n\r]/g,""); の "" を " "のように、半角空白でも入れて下さい。


以下を、<head> に組み込みます。
<script type="text/javascript">
<!--
var MAXLENGTH = 20; //入力可能文字数(この数字を制限数にする)
function mojiseigen(txt) {
var tmp = txt.bun.value;
var len = tmp.replace(/[\n\r]/g,"");
var len = len.length;
if(leng > MAXLENGTH) {
alert("入力可能な文字数は"+MAXLENGTH+"文字までです");
} else {
txt.submit();
}
}
// -->
</script>

以下を、<form>に組み込みます。rows と cols は適当に入れ替える。
<textarea name="bun" rows="5" cols="20"></textarea>
<input type="button" value="送信" onclick="mojiseigen(this.form); return false">
質問者 ada  [削除]  投稿日 11/2(金) 12:59:55
あ〜りがとぉございます!
cgiが表示させるHTMLの中に、早速埋め込んでみましたが機能しなくて・・・。
悪戦苦闘しながら、つついてみます。
回答者 呑兵衛  [削除]  投稿日 11/2(金) 15:14:40
cgi とは知りませんでした。
どっちにしても、これでは動かないです、ハイ。

訂正
if(leng > MAXLENGTH) {

if(len > MAXLENGTH) {


cgiに埋め込む場合は
var len = tmp.replace(/[\n\r]/g,"");

var len = tmp.replace(/[\\n\\r]/g,"");

入力可能

入力可能\
に変更してください。
質問者 ada  [削除]  投稿日 11/2(金) 18:58:04
嗚呼我感激多大謝々!!
呑兵衛さん、ありがとうございました!!!!!!!
\を入れたり取ったりしながら、悪戦苦闘していたところでした。
また他の質問させていただく際は、どうぞ宜しくお願いします。

このページは終了したので返信(回答)は書きこめません

Web裏技