パンプキンスパイスラテ

IT系のことが多めの日記帳です

safariの日本語処理がひどい

XHTMLのinput要素の「maxlength」はユーザーが入力できる文字数を制限してくれるものなのだけれど、safariだとおかしな現象が起きてしまう。
半角英数字なら問題ないが、日本語を文字数以上入力すると「maxlength」が効いてくれずに入力できてしまう。
コピペではダメなので、文字を入力して変換せずに確定すると再現できる。

↓サンプルを作ったのでお試しください。
http://hachikun.com/blog_sample/maxlength.php

さらにひどいことに、safari内部では「maxlength」の長さで切られているらしく、POSTしたりする時は「maxlength」の長さの文字しか送られない。
つまり、safariの表示上のバグのようだ。

これはひどい

これでは、ユーザーが入力した文字が途中で切られてしまうことになる。
また、Ajaxで文字数オーバーした時にinput要素の背景色を変えたりしたい場合、入力された文字を裏でサーバー側へ投げるんだけど、その時に送られる文字は「maxlength」の長さになっているので、チェックに引っかからないという悲しい現象が起きてしまう。

safariユーザーは、そのような現象が起きたとしても、決して管理者へ「バグ報告」しないでほしい。