TEXTAREAで入力文字数を制限するには?

[上に] [前に] [次に]
匿名希望 1998/08/28(金) 12:21:22
TEXTAREAで入力文字数を制限するにはどうしたらよいのでしょうか?
どなたか教えて下さい

PTAN [E-Mail] [HomePage] 1998/08/28(金) 18:52:20
入力制限はできないので、JavaScriptでonSubmit時にlength
をチェックするか、CGI側でチェックするしか無いでしょう。

mura [E-Mail] 1998/08/28(金) 19:13:56
<INPUT TYPE=TEXT SIZE=xx>のように強制的に入力を止めることはできないと思います。
バイト数は次のJavaScript関数で計算できます。
(引き数には「this.form.TEXTAREA変数名.value」のようにTEXTAREAの値を入れます)

ブラウザでJavaScriptを無効にしていたりすればチェックできないです。
Unicodeは「%uXXXX」を2バイトとして計算してますが、これでいいんでしたっけ?
#ほんとは改行も正確に計算しないといけないんでしょうけど省略してます。

function textarealen(val) {
var len;
var i=0;
var escval;
escval=escape(val);
len=escval.length;

for(; (i=escval.indexOf('%', i))>-1; i++) {
len -= escval.charAt(i+1)=='u' ? 4 : 2; // '%uXXXX'を2バイト、 '%XX'を1バイトとして数える
}
return(len);
}

匿名希望改め、トーヤ 1998/08/31(月) 15:21:29
[[解決]]
PTANさん、muraさん ありがとうございました。
返答の発言が遅くなってすいません。
強制的な入力制限は不可能というのは残念ですが、チェックの方法はわかりました。
それとIEとNNではescapeによってかえってくる値が違うみたいです。ブラウザ共通にしてほしい〜

[上に] [前に] [次に]