input タグの maxlength 属性は文字数ですが、ブラウザの実装依存などの違いが存在することもあるようです。従って maxlength 属性は気休め程度に考えておけば良いでしょう。
スポンサーリンク
maxlength 属性の設定例
<input type="text" maxlength="10" value="" />
このページを見ているほとんどの人は、日本語 ( マルチバイト文字 ) の扱いを気にしておられると思います。対応するデータベースのカラムのサイズから maxlegth の値をいくつに設定しようと考えておられる方も多いかもしれません。しかし、機種やブラウザによって入力できる実際のサイズが異なることになるため、maxlength 属性だけでは強制できません。
以前出会った凄い人
以前出会った方のエピソードになりますが、HTML に設定する maxlength の値と対応するデータベースのサイズをピッタリ一致させることに執着した人のお話です。仮に A さんだとします。
maxlength とデータベースのカラムのサイズが一致する必要性がありませんでしたので、データベースのサイズの容量を十分に余裕を持たせた可変長のカラムを用意し、maxlength 属性はそれよりも小さな値(入力するには十分余裕のあるサイズ)で解決することだと思いましたが、A さんは納得できていませんでした。
もちろん A さんも現役のエンジニアなので、maxlength 属性だけではなく、サーバ側でもサイズのチェックを行うことは十分に知っておられる人で、大手企業のシステム子会社のプロパーです。請負や派遣の私たちには口を挟む権限はありません。
まさかの展開に
A さんは唐突に、ブラウザからの UserAgent で maxlength の値をブラウザごとに変更しようと言い出しました。一同唖然です。同僚はデスノートに A さんの名前を書いていました。
最近はゲスノートもあるようですね。結構な効き目だそうで。
もちろん A さんは自分で手を動かすようなことは一切しません。仕事の内容はエクセルでのスケジュール管理です。このエクセルの作成にも毎日一人ずつ呼び出され、進捗や問題を聞き取って作成する大作です。私たちにとっては、重石でしかありませんでしたが。
結局 maxlength はどうなったか
実はちょっとだけ A さんよりも偉い立場にある、他のプロパーさんに助け舟を求めた人がいました。このプロパーさんを B さんとします。B さんは残念ながら女性に免疫がないタイプの人です。実は、私たちは結託して 20代の女性エンジニアに B さんに掛け合うように言ったのです。作戦は大成功となりました。スケジュールの都合上との理由で UserAgent の話はあっさりとなくなりました。
世の中こんなものだと改めて思い知らされました。ただ、私たちも女性エンジニアの方には感謝しましたが、申し訳ない気持ちででした。私たちもずるい人間だと思います。
その後、B さんは女性エンジニアに好意を持ったようですが、ここでその話は控えておきます