编程经验:JavaScript限制textarea/textbox输入长度

前台:

<asp:TextBox  ID="txtText" runat="server" TextMode="MultiLine" Width="95%" Rows="4" CssClass="txtBoxBreak" ></asp:TextBox>

 

文本框限制长度,应该要从本质上限制(就是但输入超过maxlength就不让输入),而不是仅仅提示(还需要用户去数超过多少,然后删除),这是非常不友好的。

 

传统限制长度方法:

1、此方法只是超过一定长度弹出一个提示而已,不是很友好

txtText.Attributes.Add("onblur", "javascript:MaxLength(this," + value.ToString() + ",'输入内容超出限定长度:');");

2、此方法满足了动态限制长度,但是文本内容不能修改,方向键无效等等缺点

txtText.Attributes.Add("onkeydown", "if(this.value.length   >  " + value.ToString() + "); this.value   =   this.value.substr(0," + value.ToString() + ");"); txtText.Attributes.Add("onkeyup", "if (this.value.length   > " + value.ToString() + "); this.value   =   this.value.substr (0," + value.ToString() + ");");

 

改良方法:

txtText.Attributes.Add("onkeyup", "return isMaxLen(this)");

txtText.Attributes.Add("maxlength", value.ToString());

 

<script type="text/javascript"> 

function isMaxLen(o){

    var nMaxLen = o.getAttribute ? parseInt(o.getAttribute("maxlength")) : ""; 

 if(o.getAttribute && o.value.length>nMaxLen){ 

 o.value=o.value.substring(0,nMaxLen) 

 } 

} 

</script> 

 

 

maxlength=10

<SC&#114IPT t&#121pe='"text/javascript"'>function isMaxLen(o){ var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):""; if(o.getAttribute && o.value.length>nMaxLen){ o.value=o.value.substring(0,nMaxLen) } }

原文地址:https://www.cnblogs.com/Gemgin/p/3136291.html