プロが教える店舗&オフィスのセキュリティ対策術

<input type=text~~~~~~>で作ったテキストに160byte(全角80文字)までしか入力できない制限をつけたい。

<input type=text~~~~~~>で作ったテキストに半角数字(又は英数)しか入れられないようにするタグとかないでしょうかね??
こっちは半角電話番号を入力してもらいたいのです。


どなたかご存知の方おりましたからお願いします。

A 回答 (3件)

とりあえずMin_2さんと同意見なのですが、もう少し詳しく言うと、MAXLENGTHとはtype=textの属性のことです。


入力文字数制限に使います。
ただ、全角でも半角でも文字数計算で認識しているブラウザがある(IE)ので、確実にバイト計算することは出来ないと思います。

例)6文字まで入力可能にする
<input type=text MAXLENGTH=6 value="">

半角入力チェックについては、JavaScriptやCGIを利用するしかないですね、、、^^;
タグでは不可能です。
    • good
    • 0
この回答へのお礼

あはぁぅー。

そうですかぁ。
先にいっておかなければならなかったのですが文字数制限の方は
<input type=text
じゃなくて<textareaでテキスト作るものでした。

途中でmaxlengthに気付いてtextarea文にmaxlengthを入れてみましたが
効果ありませんでした。。。

そして他ページで探すと「無理」と書いてあったので諦めました。。。

お礼日時:2001/10/18 16:59

タグでは上記の要望を満たすものはありません


完璧ではありませんが、JavaScriptを利用した方法を
ヒント程度に紹介します。

> 160byte(全角80文字)までしか入力できない制限
下記の関数で文字列のバイト数が取得できます。

function getLenB( str ) {
 var i, cnt = 0;
 for(i=0 ; i<str.length ; i++) {
  if(escape(str.charAt(i)).length < 4){
   cnt++;
  }else{
   cnt+=2;
  }
 }
 return cnt;
}

> 半角数字(又は英数)しか入れられないようにする
これは isNaN関数を使えば数字か否かを調べられます。

あとはこれらのヒントを元に
onSubmitやonChange, onBlurイベントなどで入力値をチェックしてあげれば良いかと思います。

理想は送信先のサーバーサイドのプログラムでチェックした方が良いんですけどね。
両方チェックするなら尚良し、ですが(^^)

参考までに

この回答への補足

<script language=javascript>

function(){

textがonchangeの時に
  isNanで数字かを判定する
}

ってな流れでいいんでしょうかね

ありがとうございます

補足日時:2001/10/18 16:53
    • good
    • 0

 使ったことはないですが、


MAXLENGTH=nで最大入力文字数、ISTYLE=nでiMode入力時のディフォルト値を指定できるようです。
 あとは全角で電話番号を入力されたら、cgi側で半角へ変換すれば良いと思います。

参考URL:http://tohoho.wakusei.ne.jp/html/input.htm
    • good
    • 0
この回答へのお礼

ご返答ありがとうございました。

入力文字数の方は解決しました。

入力文字種類の方なんですが、PC上での話なんですけれど、
imodeってあの電話のi-modeの話なんじゃないですか?
しかも、最初のデフォルトの設定だけで、Alt+半角/全角キーで
変えれてしまい、入力も出来てしまいます。

やっぱりcgiかjavascript使うしかないですか…。

お礼日時:2001/10/18 16:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!