2009-08-25 41 views
0

我希望能够显示当前用户正在写入文本时在asp标签中写入文本框中的当前字符数。 我已经阅读了网络上的部分文章,但没有一篇适用。Asp.net计数正在写入文本框中的字符数

我使用

<asp:TextBox ID="txtInput" runat="server" TextMode="MultiLine" onkeyup="Count(this.id)"></asp:TextBox> 

<script type="text/javascript"> 
     function Count(x) { 
      document.getElementById(lbNrChar).value = document.getElementById(x).value.length; 
     } 
</script> 

但没有任何成功..试图

+0

你看了哪些文章?你用什么代码不起作用? – BigBlondeViking 2009-08-25 16:29:54

+0

我正在使用上面的代码,但没有任何内容显示在我的标签文本中。标签ID是lbNrChar。 – Blerta 2009-08-25 16:43:15

回答

3

我们使用Javascript功能来解决这个问题:

的document.getElementById(值).value.length ...

注意,如果控制是一个标签,那么你必须使用.innerHTML没有。值属性为它取长度。

document.getElementById("Label1").innerHTML = 
document.getElementById("TextBox1").value.length; 

与如果它是另一个文本框,你会使用.value。

在服务器端,你可以通过textbox.text.length

2

您需要使用浏览器托管的客户端脚本语言 - 基本上你必须使用JavaScript。

This question相当好地回答你想要做的事。您需要处理要跟踪的文本框和文本区域的onKeyPress客户端事件,并将标签,脚本和文本控件放在ASP.NET UserControl中不会是一个坏方法。

编辑:由于链接的问题没有进一步深入,你需要jQuery(你会发现当你开始使用它时可以再次获得多少有趣的网页UI编程),我怀疑this article会帮助你你明白如何让球滚动。

0

得到它我没有测试过这一点,但希望它帮助。如果你在UserControl中这样做,如果你不止一次地在页面上放置相同的用户控件,你将不得不改变它。 (基本上你必须从代码隐藏注册JavaScript)。

在后面的代码(初始化或负载或其他地方类似的):

txtInput.Attributes["onkeydown"] = String.Format("count('{0}')", txtInput.ClientID); 

ASPX

<asp:TextBox id="txtInput" runat="server" TextMode="MultiLine"/> 
Count: <span id="spanDisplay"></span> 

<script type="text/javascript"> 
    function count(clientId) { 
    var txtInput = document.getElementById(clientId); 
    var spanDisplay = document.getElementById('spanDisplay'); 
    spanDisplay.innerHTML = txtInput.value.length; 
    } 
</script> 
相关问题