今天在开发时想对一个textarea进行输入字数的限制,同时可以显示给客户剩余多少字数,就像现在很多的论坛博客。在网上找了一下,看到了一些很好的JQUERY插件,美中不足的是在使用说明上不够详细,转载的文章也都是原文抄袭,真不知道这些兄弟转载了干吗。
比较之后我选择了一个maxlength的JQUERY插件,原文见http://www.iinterest.net/2009/01/31/jquery-plugin-maxlength/ ,感谢原作者。因为此插件限制较多,使用不太方便,所以我做了一些修改。修改点如下:
- 原插件限制了显示剩余字符的控件类型为input,我改为无限制
- 原插件限制了一个form内所有控件只能有相同的字符长度控制,我新增了一个参数maxlength,用于自己指定每个控件的字符长度
- 将原控件根据class名字来查找控件改为根据id来查找
因原文对具体使用说明不细,导致我这样对JQUERY不是特别熟悉的人花了不少时间调试,为了照顾像我一样水平的兄弟,下面给出详细的应用代码。
ASPX文件:
引入JS
<script type="text/javascript" src="../script/maxlength.js"></script>
因为是限制textarea控件,所以必须使用一个hidden input来控制长度,原因是textarea的maxlength属性取值为用户实际输入的字符长度。如果是限制input的输入长度,就不需要了。
<asp:TextBox TextMode="MultiLine" Wrap="true" runat="server" ID="PositionInfo" Rows="20" Width="825px" MaxLength="3000"></asp:TextBox>
<br />最多3000字,还可输入<span id="DescSize">3000</span>字
<input type="hidden" name="maxlength" Value="3000" id="maxlength"/>
JQUERY引用:
<script type="text/javascript">
$(document).ready(function() {
$('#<%=PositionInfo.ClientID%>').bind('propertychange', function() {
$(this).maxlength({
'feedback': 'DescSize','useInput': true
});
});
});
</script>
注意因为引用了aspx的控件,所以这部分script需要放在body中
附件是修改过的js,请大家自己改一下后缀名
最后给网站做个广告:免费交友网站-交友乐 ,希望大家随手点击一下,谢谢。