IE11でmaxlength属性を設定すると日本語入力が正しく機能しない

IE11ではmaxlength属性を設定すると日本語入力が正しく機能しない

Internet Explorer 11でmaxlength属性を設定すると漢字変換前のひらがな入力がmaxlength属性で指定した文字数しか入力できない問題があることがマイクロソフトの公式サイトで報告された。
http://support.microsoft.com/kb/2922126/ja

そんな馬鹿なと思い試したところ確かに指定したmaxlengthの値までしか入力できない。maxlength=”7″を指定したinputタグを下記に置いたのでIE11で試してみていただきたい。

maxlength=”7″に設定した入力フォーム

ユーザー名:

これから先、IE11のシェアが多くなることを考えるとmaxlength属性の使用は控えたほうが良さそうだ。

どうしてもIE11でも文字入力の最大数を指定しなければならない場合は下記のようにJavaScriptで代用できる。

$(function(){
  $("input").on("keyup blur", function(){
    var str = $(this).val();
    var limit = 7;
    if(str.length > limit){
      $(this).val(str.substr(0, limit));
    }
  });
});