2007年8月9日 星期四

TextBox在MultiLine的狀況下,設定最大輸入字元

TextBox裡面的 MaxLength屬性,只適用於 singleline 或 password,所以在 MultiLine的情況下,所設定的 MaxLength 會失效。這時,我們可以透過JavaScript或是自訂的驗證控制項來解決這個問題。下面列出的是我們自訂的驗證控制項。

// 寫在 .ASPX 的 javascript宣告裡面
function CheckLength(src,args)
{
  if(document.activeElement.id == "btnOK" )
  {
    var getElement = document.getElementById("txbAbstractShort").value;

    if(getElement.length > 255)
    {
      args.IsValid=false;
    }
  }
  return args.IsValid;
}


<asp:customvalidator clientvalidationfunction="CheckLength" controltovalidate="txbAbstractShort" display="Dynamic" errormessage="上首頁摘要最大字元長度不可超過256" id="custCheckLength" runat="server">
</asp:customvalidator>

補充:20110706
另外提供 jQuery 的寫法,比較起來,似乎更精簡了。
<script>
    $(function () {
        $("textarea[id*=tbx_changereason]").blur(function () {            
            if ($(this).val().length > 255) {
                alert('最大字元長度不可超過255');
                $("textarea[id*=tbx_changereason]").val($(this).val().substring(0, 255));
            }
        });
    });
</script>

使用時,只需要將 tbx_changereason 修改成自己的控制項 id ,而 出現3次的數字255,則是允許最大的輸入長度。

參考:
01:TextBox 在 MultiLine 模式時無法使用 MaxLength 屬性
02:textbox的属性设置成TextMode="MultiLine" 后maxlength就没起作用了??怎么办?
03:textbox的textmode取為multiline時,其maxlength不起作用 解決方法

沒有留言:

張貼留言