テキストボックスの文字数制限(NS,IE)
[上に]
[前に]
[次に]
ゆうこ
1998/10/29(木) 17:57:21
はじめまして。
初歩的な質問かもしれませんが、よろしくおねがいします。
テキストボックスで入力できる文字数を指定して2バイト文字を
入力したところ、NSとIEで違う数が入ってしまいました。
ex,MAXLENGTH="20"として
IE:20文字
NS:10文字
これを、同じ数しか入れられないようにするには、
どうすればよいのでしょうか。
ご存知の方、ご教授ください。おねがいします。
匿名希望
1998/10/31(土) 03:56:58
ちょっと質問がわからないです。
まず、これはどんな言語のしつもんなんでしょう?
CGIだとかJavaScriptだとかいろいろ考えられますが・・。
それから、質問の内容なんですけど、
・テキストボックスに半角文字を2文字入れて読み込んだところ(例:MAXLENGTH="20")、IEでは"20"、NSでは"10"という文字に
なった。
・テキストボックスに全角文字を20文字入れて読み込んだところ、
IEでは20文字、NSでは10文字と認識される。
・・・私がこの文章から直感で思ったのは以上ですが、合っているでしょうか。いや、多分違うと思います。
もう一度ここに質問を書き直してみてはどうでしょう?>ゆうこさん
匿名希望
1998/10/31(土) 04:47:07
↑・・ごめん、、私が勘違いしてました。
やっぱり、2バイト文字の認識の仕方がNSとIEで違うのではないでしょうか?
とーりすがーり
[E-Mail]
[HomePage]
1998/10/31(土) 11:54:52
たとえば、
<input type="text" size="20" style="width:195px">
としてsizeでNNの幅を指定し、styleでIEの幅を指定します。
(NNではこのスタイルが有効でない為)
1サイズの幅はここを参照してください。
「タグの重複オプションの優先度は? 」
../199810/98100037.htm
ただし、NN3とNN4の幅も違いが出ますので、
どちらに併せるかでstyleの幅を決めなければなりません。
mura
[E-Mail]
1998/11/02(月) 09:09:52
INPUTタグとその前後のHTMLをまるまるここに書いて下さると、いろいろ答えられるかもしれません。
お使いのブラウザのバージョン(2/3/4)とOS(Win/Mac/UNIX)もわかると助かります。
ゆうこ
1998/11/02(月) 13:54:32
みなさん、いろいろありがとうございます。
質問の書き直しをします。
環境は、プラウザがIE4.0とNC4.05、OSがWin95です。
中身は、IIS3.0で実行するASPファイルで
<FORM NAME="frmAppEdit" ACTION="AppEdit.asp" METHOD="post" onSubmit="return jsSendChk()">
・・・
<TR>
<TD NOWRAP ALIGN="right">
<FONT COLOR="#0000FF"><B> 件 名 </B></FONT>
</TD>
<TD NOWRAP COLSPAN="2">
<INPUT TYPE="text" NAME="DOC_NM" SIZE="45" MAXLENGTH="20" VALUE="<%=doc_nm%>">
</TD>
</TR>
・・・
みたいになってます。
このHTMLで表示させたテキストボックスに、
IEだと「あいうえおかきくけこさしすせそたちつてと」が入力でき、
NCだと「あいうえおかきくけこ」までしか入力できません。
2バイト文字でなく1バイト文字の場合は、両方20字入力できます。
つまり、IEは文字数、NCはバイト数で判断しているということだと思うのですが、
みなさん、どのように対処してるのでしょうか。
最終的には値をDBに書き込むため、正確に入力文字数の制限をしたいと思ってます。
よろしくお願いします。
Tiot
1998/11/02(月) 18:05:43
サーバ側で処理しないという前提なら、ブラウザによって処理を分けるというのがよいかと思います。
http://www.tohoho-web.com/wwwjssm2.htm
困ったときのお約束みたいであまり好きでないのですが。
将来的にどうなるか、他のブラウザはどうなのかもわかりませんし。
#IEとNNの違いはこの方法でたいてい解決できます。
JavaScriptの文字列処理もmaxlengthのときと同じです(IE->1,NN->2)。
JavaScriptでの文字列処理は今一よくわかっていないので(文字列処理はcgi&perlの方が全然楽)
なんとも言えませんが、正規表現など駆使すればできるのかもしれません。
ゆうこ
1998/11/02(月) 19:50:05
[[解決]]
バージョンの限定はちょっとできないので、
Tiotさんの教えてくださった方法でやってみたら
無事、入力文字数を制限することができました。
みなさん、ありがとうございました。
omi
1998/11/02(月) 20:09:03
Tiot さんのお話にヒントを得て。
<SCRIPT>
NN =( navigator.appName.charAt(0)=='N');
document.write("<INPUT TYPE='text' NAME='DOC_NM' SIZE=45 MAXLENGTH="+((NN)?40:20)+" VALUE='<%=doc_nm%>'>");
</SCRIPT>
ひどいコードだけど、なんとかなるよ。
omi
1998/11/02(月) 20:11:10
ありゃ、終わってた。
[上に]
[前に]
[次に]