TextBox の MaxLength が効かない
![イメージ](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV_rjRGNXKTiuvy_zP8xrgVH6xT39A6boEJBE_ezFhoetI7qoURk0_GMQLyBe2Eg5b5bf4MNOg2zbagEUBVpSKN3jnM5wzM0IXv80Bp0dQprcGNuVFJzENAKARNYOWVTxa84Wv0A/s1600/t1.png)
ASP.NET の TextBox における MaxLength TextBox の MaxLength プロパティは、TextMode が MultiLine になっていると動作しないというバグが存在する。しかもこれは .NET Framework 4.5 になっても修正されていない。 JavaScript でゴリゴリ対処する やや泥臭いが、これに関しては JavaScript で回避するしかない。 テキストボックス <asp:TextBox ID="TextBox1" runat="server" Rows="5" TextMode="MultiLine" keypress="return CheckLength();" onblur="TrimValue();"></asp:TextBox> JavaScript // keypress イベントにセットする関数。 var maxlen = 100; function CheckLength() { var textbox = document.getElementById("<%= TextBox1.ClientID %>").value; if (textbox.trim().length >= maxlen) { return false; } else { return true; } } 半角文字であれば、上記の関数で問題はないだろうが、全角文字のチェックはできない。つまり、日本語環境では上記のチェックも役に立たない。これを対応させるのは OS やブラウザの差異によりかなり厳しいようだ。 また、半角であっても貼り付け(ペースト)られると全く意味がないので、貼り付け用のチェックを追加する。 // onblurイベントにセットする関数。 function TrimValue() { var textbox = document.getElementById("<%= TextBox1.ClientID %>").value; if (text