OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

TETXの入力制限について色々と…

  • すぐに回答を!
  • 質問No.153430
  • 閲覧数319
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 74% (29/39)

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

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


どなたかご存知の方おりましたからお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 65% (242/372)

タグでは上記の要望を満たすものはありません
完璧ではありませんが、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イベントなどで入力値をチェックしてあげれば良いかと思います。

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

参考までに
補足コメント
masaichi1212

お礼率 74% (29/39)

<script language=javascript>

function(){

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

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

ありがとうございます
投稿日時 - 2001-10-18 16:53:45
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 21% (114/531)

 使ったことはないですが、 MAXLENGTH=nで最大入力文字数、ISTYLE=nでiMode入力時のディフォルト値を指定できるようです。  あとは全角で電話番号を入力されたら、cgi側で半角へ変換すれば良いと思います。 ...続きを読む
 使ったことはないですが、
MAXLENGTH=nで最大入力文字数、ISTYLE=nでiMode入力時のディフォルト値を指定できるようです。
 あとは全角で電話番号を入力されたら、cgi側で半角へ変換すれば良いと思います。
お礼コメント
masaichi1212

お礼率 74% (29/39)

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

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

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

やっぱりcgiかjavascript使うしかないですか…。
投稿日時 - 2001-10-18 16:49:44


  • 回答No.3

とりあえずMin_2さんと同意見なのですが、もう少し詳しく言うと、MAXLENGTHとはtype=textの属性のことです。 入力文字数制限に使います。 ただ、全角でも半角でも文字数計算で認識しているブラウザがある(IE)ので、確実にバイト計算することは出来ないと思います。 例)6文字まで入力可能にする <input type=text MAXLENGTH=6 value="& ...続きを読む
とりあえずMin_2さんと同意見なのですが、もう少し詳しく言うと、MAXLENGTHとはtype=textの属性のことです。
入力文字数制限に使います。
ただ、全角でも半角でも文字数計算で認識しているブラウザがある(IE)ので、確実にバイト計算することは出来ないと思います。

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

半角入力チェックについては、JavaScriptやCGIを利用するしかないですね、、、^^;
タグでは不可能です。
お礼コメント
masaichi1212

お礼率 74% (29/39)

あはぁぅー。

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

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

そして他ページで探すと「無理」と書いてあったので諦めました。。。
投稿日時 - 2001-10-18 16:59:24
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ