WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:テキストで入力バイト数に制限をかけて制限以上は消す

0:[投稿] yoshicyan [2003/12/24 19:08 ][環境:IE6 わからない]

はじめましてyoshicyanといいます

テキストボックスに50バイトまでの制限をかけてそれ以上
入力された場合はメッセージを出して先頭から50バイトまでを
表示しそれ以上の分は消してしまいたいのですがうまくいきません。
50バイト目が全角だった場合は49バイト目で削除したいです。
どなたか教えていただけないでしょうか。よろしくお願いします。


<input type="text" name="freeComment"
onKeyDown="textCounter(this.value);"
onKeyUp="textCounter(this.value);">


function textCounter(field) {
 var text   = document.getElementsByName('freeComment')[0].value;
 var textM  = ""
 var count  = 0;
 var countM = 0;    
 for (i=0; i<text.length; i++){
  n = escape(text.charAt(i));
  if (n.length < 4) count++; else count+=2;
 }
 
 if(count > 50){
  alert("文字数をオーバーしています" + count);
  for (i=0; i<text.length; i++){    
   num=escape(text.charAt(i));
   if(countM < 50){
    if (n.length < 4){
     countM++;
     textM=textM+text.substring(i,i+1);
    }else{
     countM+=2;
     textM=textM+text.substring(i,i+1);
    }
   }
  }else{        
   document.getElementsByName('freeComment')[0].value = textM;
  }
 }
}


1:[回答] 薫 [2003/12/25 09:50 ]

# 言語名くらいは書きましょう :)

javascriptであれば「escape」ですかね。
下記に「全角と半角の判別法」が載っています。
http://member.nifty.ne.jp/aya/js2/js209.htm

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World