<input maxlength>

<input maxlength>

maxlength 属性 (HTML)

[1] HTMLinput 要素textarea 要素maxlength 属性は、 利用者が入力できる最大文字数を指定します。

[9]

状態
W3C 勧告WHATWG WD
要素型
inputtextarea
type
textpasswordemailurltextarea
属性名
maxlength (maximum length (最大長) より)
属性値
文字数 (>>3)
既定値
制限なし (>>4)

[2] 仕様書:

属性値

[3] この属性の値は NUMBER です。 最大の文字数を指定します。

[4] この属性は省略可能です。省略時は無制限と見なされます。 HTML 4 17.4

数え方

[12] maxlength 属性の値は、 文字 (符号位置) を制約します。 WF2 2.5

[13] textarea では、 改行は、 wrap 属性に依存して追加されるものも含め、 1つ2文字 (CR LF) と数えます。 WF2 2.5、2.14

[17] この属性初期値 (defaultValue) には影響してはなりません利用者の入力や妥当性検証にのみ影響しなければなりませんWF2 2.5

安全性

[16] フォーム処理エージェントは、 悪意の有る利用者不適合利用者エージェントを考慮し、 maxlength 属性が指定されていたとしても、 必要ならば入力値の長さの検査をするべきですWF2 2.5

歴史

[6] HTML 4 DTD の注釈 (参考) には max chars for text fields と説明があります。

[10] maxlength 属性は、 HTML 4 では input 要素textpassword にだけ定義されていました。

[11] Web Forms 2.0 では、 inputemailurl にも適用されるようになりました。 また、 textarea にも定義されました。

実装

[8] Bug 345267 - If the initial text input value is longer than maxlength it is truncated. https://bugzilla.mozilla.org/show_bug.cgi?id=345267 (名無しさん 2006-07-22 04:28:31 +00:00)

関連

[5] この属性の値は、 size 属性の値を超えても構いません。 その場合は、 UA は何らかの scroll の仕組みを用意するべきです。 HTML 4 17.4

[15] maxlengthtext, password, email, url, textarea に対して与えられ、その制御子が指定されたよりも多くの符号位置を含み、 しかもその既定値とは一致しないなら、 tooLong 妥当性検証誤り報告されます。 WF2 2.5

[18]

<input type="email" maxlength="1" name="test"/>

この制御子は、値が選択されていないときだけ妥当になります。 WF2 2.5

長さが1の電子メイル・アドレスは存在しないからです。

メモ

[7] 正規化提出時の文字コードの変換によって、 同じ文字列のはずでも長さが変わってmaxlengthの制限を満たさなくなることがあります。

[14] emailurlmaxlength 属性を使うことは、 実際にフォーム処理エージェントで制限がある場合を除き、 非推奨とされています。 電子メイル・アドレスURI著者の考える以上に長いことがざらにあるからです。 WF2 2.5

メモ

[32] [whatwg] Constraint validation for maxlength ( 版) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027257.html

[33] IRC logs: freenode / #whatwg / 20100906 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20100906#l-844

[34] Web Applications 1.0 r6413 Semi-allow <input type=number maxlength> for legacy reasons. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=6412&to=6413

[35] maxlengthを使ってはいけない。特にパスワード入力欄で使っちゃ駄目! #UI #JavaScript #HTML - Qiita [キータ] ( ( 版)) http://qiita.com/items/d462a05c113b8e063736

[36] Internet Explorer 11 で contenteditable 属性や maxlength 属性を設定した要素で日本語入力ができないことがある ( ( 版)) http://support.microsoft.com/kb/2922126/ja

[19] Change minlength/maxlength behavior around linebreaks (domenic著, ) https://github.com/whatwg/html/commit/163703186794c21daa92cc2718218afa44f26071

[20] 1320229 - Consider warning if a value pasted in a password field is truncated due to max length () https://bugzilla.mozilla.org/show_bug.cgi?id=1320229

[21] なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています: 「パスワードをmaxlengthで自動でtruncateする事を嫌った貢献者の方からパッチが出てきたので、Firefoxでそれを採用してみたことあるんやけど、とある企業向けのデカいアプリが壊れて、しかも担当の人がbugzilla上で「サーバー側で何もチェックしてないからやめろ」とか公言したことありまして。」 / Twitter, , https://twitter.com/d_toybox/status/1679118700853723136