您的位置:首页 > Web前端 > JavaScript

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

2013-06-13 14:34 597 查看
前台:
<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

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) } }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: