maxlength
属性 (HTML)[1] HTML の input
要素と
textarea
要素の
maxlength
属性は、
利用者が入力できる最大文字数を指定します。
input
、textarea
type
text
、
password
、
email
、
url
、
textarea
maxlength
(maximum length
(最大長) より)
[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
要素の text
と
password
にだけ定義されていました。
[11]
Web Forms 2.0 では、
input
の
email
と
url
にも適用されるようになりました。
また、 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]
maxlength
が
text
, password
,
email
, url
,
textarea
に対して与えられ、その制御子が指定された数よりも多くの符号位置を含み、
しかもその値が既定値とは一致しないなら、
tooLong
妥当性検証誤りが報告されます。
WF2 2.5
<input type="email" maxlength="1" name="test"/>
この制御子は、値が選択されていないときだけ妥当になります。 WF2 2.5
[7]
正規化や提出時の文字コードの変換によって、
同じ文字列のはずでも長さが変わってmaxlength
の制限を満たさなくなることがあります。
[14]
email
や
url
で maxlength
属性を使うことは、
実際にフォーム処理エージェントで制限がある場合を除き、
非推奨とされています。
電子メイル・アドレスや 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