topics
一言メモ
selectタグをJavascriptで生成したとき、IE6だけsize属性が1になっちゃう。そりゃないぜ!止む無くsetTimeoutで切り抜けた【一言集】

ホーム > マークアップ > (x)html > maxlength属性

maxlength属性

inputタグ要素の属性、maxlengthについて、ちょっと調べてみた。
調査ポイントは2つ。
半角英数と全角でmaxlength値のカウント方法が異なるか?
文字コードによってカウント方法は異なるか?

調査方法

xhtml 1.0 strict、 xhtml 1.0 transitional、 html 4.01 transitional において、それぞれutf-8、Shift-JIS、euc-jpのサンプルページを用意。
inputタグ要素の属性にmaxlength="5"を追加し、半角と全角を組み合わせた文字「abcテストです」で入力。
検索前後のパラメータ値を各ブラウザで調査。
サンプルページ

調査結果

ブラウザ utf8 Shift-JIS euc-jp
IE8 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
IE7 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
IE6 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
FF3.6 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
Chrome 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
Safari4 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
Opera10.10 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
Sleipnir2.9 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
Safari4(Mac) 入力前 : abcテストです
入力後 : abcテス
入力前 : abcテストです
入力後 : abcテス
入力前 : abcテストです
入力後 : abcテス
FF3.6(Mac) 入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス
入力前 : abcテス
入力後 : abcテス

考察

まず、文書型による結果の違いはなかったため、調査結果は xhtml 1.0 strict、 xhtml 1.0 transitional、 html 4.01 transitional 用にそれぞれ3つ用意せず、一つにしている。

現在主要のブラウザ・文字コードでもmaxlength値は、半角1文字でも全角1文字でも同じ「1」としてカウントされる。
ただし、Safari4においては入力時は2バイト文字はmaxlength値は無視される。しかしデータとしては最初の5文字しか渡らない。

この記事に関するご意見・ご感想をお待ちしております。

お名前:

コメントNo.1

Sleipnir2.9での検証結果を追加しましたー

たけたけ:2010年5月24日

コメントの削除はお手数ですが、contact@allinthemind.bizまでご連絡ください。

この記事のトラックバックURL
トラックバックは終了132
トラックバックNo.4
maxlengthで指定されたテキストのlength

0から目指すWebマスター:2010年5月24日

inputタグ要素の属性、maxlengthが指定されたテキストの文字数について...


ナビゲーション