首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Textbox 限制输入字符数!c#解决思路

2013-09-11 
Textbox 限制输入字符数!c#各位大侠,如何实现限制textbox可输入字符数。限制最多可以输入18个汉字(36个字符

Textbox 限制输入字符数!c#
各位大侠,如何实现限制textbox可输入字符数。限制最多可以输入18个汉字(36个字符),字母或者数字只能算一个字符,建议不用maxlenth!因为汉字和数字是同一个概念!js也可以!最好可以提示已经输入多少字符,还可以输入多少字符!!!! 
下面是我写的,可是与我的目的不同,伤脑筋、、、、、、、

     <script type="text/javascript" language="javascript">
        function checklength( length) {
            var v = document.getElementById("TextBox12").value;
            if (v.length > 10) {
                alert('输入文字不得超过10个字符');
            }
            return false;
        }
           
    </script

  <asp:TextBox  ID="TextBox12" runat="server"   onkeyup= "checklength(this) "
 ></asp:TextBox> textbox javascript c# 限制zifu
[解决办法]
refer:http://blog.163.com/for_fun_zz@126/blog/static/168376345201223181734667/
[解决办法]

引用:
guwei4037  你好,
你给我的链接,我试了啊,都不行呀!!!! 系统没有报错误,但是没有任何反应!!!! 好奇怪啊!!!!  求解

你好,我特地试了一下,是可以的。
<html>
<head>
<script type="text/javascript" language="javascript">
        function checklength( length) {
            var v = document.getElementById("TextBox12").value;
            if (getByteLen(v) > 10) {
                alert('输入文字不得超过10个字符');
            }


            return false;
        }
   function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
                 var a = val.charAt(i);
                 if (a.match(/[^\x00-\xff]/ig) != null) 
                {
                    len += 2;
                }
                else
                {
                    len += 1;
                }
            }
            return len;
        }
    </script
</head>
<body>
<input type="text" id="TextBox12" onkeyup= "checklength(this)"/>
</body>
</html>


另外,<asp:TextBox  ID="TextBox12" runat="server"   onkeyup= "checklength(this) "
 ></asp:TextBox> 是个服务端控件,  var v = document.getElementById("#<%=TextBox12.ClientID%>").value;应该这样获取id。
[解决办法]
这是我上面给出的html代码,在FF中的效果。
Textbox 限制输入字符数!c#解决思路
[解决办法]
引用:
Quote: 引用:

guwei4037  你好,
你给我的链接,我试了啊,都不行呀!!!! 系统没有报错误,但是没有任何反应!!!! 好奇怪啊!!!!  求解

你好,我特地试了一下,是可以的。
<html>
<head>
<script type="text/javascript" language="javascript">


        function checklength( length) {
            var v = document.getElementById("TextBox12").value;
            if (getByteLen(v) > 10) {
                alert('输入文字不得超过10个字符');
            }
            return false;
        }
   function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
                 var a = val.charAt(i);
                 if (a.match(/[^\x00-\xff]/ig) != null) 
                {
                    len += 2;
                }
                else
                {
                    len += 1;
                }
            }
            return len;
        }
    </script
</head>
<body>
<input type="text" id="TextBox12" onkeyup= "checklength(this)"/>
</body>
</html>


另外,<asp:TextBox  ID="TextBox12" runat="server"   onkeyup= "checklength(this) "
 ></asp:TextBox> 是个服务端控件,  var v = document.getElementById("#<%=TextBox12.ClientID%>").value;应该这样获取id。
很不错 学习学习
------解决方案--------------------


加个span标签用于接收提示,js里面控制显示一下。

function checklength( length) {
            var v = document.getElementById("TextBox12").value;
var less = getByteLen(v);
document.getElementById("ttt").innerHTML="还剩下:" + parseInt(10-less)+"个字符。";
            if (less > 10) {
                alert('输入文字不得超过10个字符');
            }
            return false;
        }

<input type="text" id="TextBox12" onkeyup= "checklength(this)"/>
<span id="ttt"></span>

热点排行