我希望能够在用户当前正在写入的文本框中以asp标签显示当前的字符数。 我在网上看过部分文章,但都没有。
我尝试过使用
<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 :(得分:3)
我们使用Javascript来解决这个问题:
的document.getElementById(值).value.length ...
请注意,如果控件是标签,那么您必须使用.innerHTML而不是.value属性来获取长度。
document.getElementById("Label1").innerHTML =
document.getElementById("TextBox1").value.length;
VS。如果它是另一个文本框,你将使用.value。
在服务器端,您可以通过textbox.text.length
获取它答案 1 :(得分:2)
您需要使用浏览器中托管的客户端脚本语言 - 基本上您必须使用JavaScript。
This question很好地回答了你想要做的幕后故事。您需要处理要跟踪的文本框和文本区域的onKeyPress客户端事件,并将标签,脚本和文本控件放在ASP.NET UserControl中并不是一个糟糕的方法。
编辑:由于链接的问题不再深入,你需要jQuery(当你开始使用时,你会发现有多么有趣的网页UI编程)我怀疑this article将帮助您了解如何让球滚动。
答案 2 :(得分:0)
我没有对此进行测试,但希望它有所帮助。如果您在UserControl中执行此操作,如果您在页面上多次使用相同的用户控件,则必须稍微更改一下。 (基本上你必须从代码隐藏中注册javascript。)
在您的代码后面(Init或Load或类似的地方):
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>