- ベストアンサー
テキストBOXの入力制限について
テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???
- snowsaab
- お礼率49% (71/144)
- Microsoft ASP
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして。 josyo_mさんの回答通りでmaxlengthでバイト数の制御をすることはできません。 Agentによってmaxlengthの解釈が異なっているためです。 汎用ロジックにするのでしたら、バイト数チェックを行うほかありません。しかし、LenB関数では半角英数字も2バイトで返ってくる恐れがあります。UNICODEです。 したがって、一度ansiに変換して半角英数字か全角かのチェックをして、バイト数を返すということをする必要があります。 For i = 1 to Len(buf) ret = Asc(mid(buf, i, 1)) If ret <= &h00 OR ret > &hFF Then iLen = iLen + 2 Else iLen = iLen + 1 End if Next ちょっと強引なロジックのような気もしますが、こんな関数を作っておけばいいと思います。
その他の回答 (2)
- josyo_m
- ベストアンサー率63% (28/44)
お疲れ様です。 maxlengthの指定だけで出来るかは自分は知りませんが、 入力させるだけさせて最終的に「LeftB」で先頭数バイト分 だけ取るのだとダメですか? 処理:LeftB("あいうえお", 4) 結果:あい 間違っていたらごめんなさい。
お礼
ありがとうございましたm(__)m そのまま使わさせていただきました。 すごく助かりました。
- josyo_m
- ベストアンサー率63% (28/44)
お疲れ様です。 回答ではありませんが、その文字数指定はブラウザによって動作が違ったと思います。 IEは文字数単位で、ネスケ等はバイト単位だったような。。。 間違っていたらごめんなさい。
補足
お疲れ様です。早々に回答ありがとうございますm(__)m そうなんですか・・・。 私の使っているブラウザはIEなんですけど、それじゃ、 IEだから文字数単位でしか制限できないということになるんですかね(・・? どうにかして、バイト単位で制限したいものなんですが、無理なんでしょうか・・・。
関連するQ&A
- TETXの入力制限について色々と…
<input type=text~~~~~~>で作ったテキストに160byte(全角80文字)までしか入力できない制限をつけたい。 <input type=text~~~~~~>で作ったテキストに半角数字(又は英数)しか入れられないようにするタグとかないでしょうかね?? こっちは半角電話番号を入力してもらいたいのです。 どなたかご存知の方おりましたからお願いします。
- ベストアンサー
- HTML
- テキストボックスの入力制限
VB2005環境です。 ・全角文字のみ入力を受け付けるテキストボックス ・半角文字のみ入力を受け付けるテキストボックス 以上のような入力制限を持つコントロールを用意したいと思っています。 MaskedTextBoxを用いればできるかと思いましたが、それらしき プロパティが見当たりませんでした。 やはりキーイベントを取得して…ということになるのでしょうか?
- ベストアンサー
- Visual Basic
- 入力に関して。
以下のソースのようにテキストボックスを4つくらい並べて、最大入力文字数になったら、自動的に右のテキストボックスに入力できるようにすることはできるのでしょうか? <html> <head> <title></title> </head> <body> <form name="form1"> <input type="text" name="txt1" size="7" maxlength="3">. <input type="text" name="txt2" size="7" maxlength="3">. <input type="text" name="txt3" size="7" maxlength="3">. <input type="text" name="txt4" size="7" maxlength="3"> </form> </body> </html>
- 締切済み
- JavaScript
- VB.net、テキストボックス入力制限、全角のみ
VB.net初心者ですよろしくお願いします テキストボックス入力制限で全角文字のみを以下の方法で実現させました (1)テキストボックス選択時のImeMode初期値を全角ひらがなに設定 (2)ボタン押下時のイベントで入力された文字のサイズを確認し、半角が混ざっていたらエラー これで基本的には問題ないのですが、後学のために入力文字自体を全角のみに制限できないかを調べています いろいろ調査してみて半角のみは可能であることがわかり、実際にコーディングもしてみました しかし全角のみは調査しても情報が見つかりません 全角のみの入力制限が可能かどうか、理由も添えてアドバイスいただけると助かります よろしくお願いします。
- 締切済み
- Visual Basic
- テキストボックスの初期値について
テキストボックスを配置したのですが 「<INPUT type="text"・・・」 となっているためブラウザで入力するときに初期値が全角日本語文字になってしまいます。 半角数値しか入力しないテキストボックスなので初期値を半角数値(または英数字)にしたいのですが出来るのでしょうか? 検索などをかけて調べてみたのですがそれらしいタグが見つからなかったので質問させていただきました。
- ベストアンサー
- HTML
- textareaで入力できる文字数を制限したい。
フォームについて質問させてください。 テキストフィールドで、シングルラインならば入力できる文字の最大数を maxlength で指定できるのですが、マルチラインの場合、同様に最大数を指定することはできないでしょうか? わかるかた、なにとぞご教授ください。 ■シングルラインでの文字数制限 <input name="thread_title" type="text" id="thread_title" size="80" maxlength="10"> ■マルチライン <textarea name="text" cols="64" rows="10" id="news_text" maxlength="10"></textarea> ↑上記のようにmaxlength入れても駄目でした。。。涙
- ベストアンサー
- HTML
- テキストボックスの入力文字を16進数のみに制限する
VC++2005、.NET2.0、C++/CLIにてWindowsアプリを作成しています。 テキストボックスの入力文字について、 「00」~「FF」の16進数文字(半角)のみ入力可能としたいのですが、 どうやって制限をかければ良いのでしょうか? また、もし16進数のみの制限が不可能であれば、 半角英数字のみの制限でも良いと考えています。
- ベストアンサー
- C・C++・C#
- VBAを使って開発しているのですが
VBAを使って開発しているのですが、 テキストボックスにバイト数で制限はかけられないのでしょうか? MaxLength を指定しているのですが、 5と指定しても、全角でも半角でも5文字入力出来てしまいます。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- テキストボックスのフォーカス移動
こんにちは。 htmlページで<input type="text"/>に既定の桁数を入力したら次のinputにフォーカスを 移動させたいと考えています。 下の例の場合、1番目のテキストボックスに既定の桁数5ケタを入力したら、フォーカス を2番目のテキストボックスに移動させ、2番目のテキストボックスに4ケタ入力したら 3番目のテキストボックスにフォーカスを移動させるようにしたいと思っています。 スクリプトの再利用ができるよう、たとえば同じname属性を与えればその範囲内で 簡単にフォーカスを移動させられるようなものにしたいと思うのですが、うまくいきません。 何か良い書き方はありませんでしょうか? <div> <input type="text" name="hoge" maxlength="5" onkeyup="test(this)"/> <input type="text" name="hoge" maxlength="4" onkeyup="test(this)"/> <input type="text" name="hoge" maxlength="5" onkeyup="test(this)"/> <input type="text" name="hoge" maxlength="2" onkeyup="test(this)"/> </div> ・ ・ <script type="text/javascript"> function test(elm) { if (elm.value.length >= elm.maxLength) { /*(気持ちとしては、ここにこのような感じのことを書きたいのですが・・・) var arr_elm = document.getElementsByName(elm.name); var n = elm.index + 1 arr_elm[n].focus(); */ } } </script>
- ベストアンサー
- JavaScript
- テキストボックスの入力制限
VB6の画面入力でテキストボックスにフォーカスが移った際、半角カナや全角漢字、半角アルファベット大文字と云ったキーボードからの入力を制御したい(OSはWinXp/FEPはIME2002を使用)のですが、良い方法が有れば教えてください。
- ベストアンサー
- Visual Basic
お礼
ありがとうございましたm(__)m masakinさんの作ってくださった関数をそのまま使用しました。 ちゃんと動作させることができました。