我在ASP.Net应用程序中有一个多行文本框,如下所示:
<asp:TextBox
ID="NeedDescriptionText"
runat="server"
TextMode="multiline"
Rows="5"
Width="78%"
MaxLength="500"
ValidationGroup="DescriptionText">
</asp:TextBox>
和一个显示左字符结果的范围:
<span id="NeedDescriptionLimit"></span><span> Character left</span>
现在我有了jQuery代码,它完全适用于DEMO,就像它一样:
<script type="text/javascript">
$(document).ready(function () {
// Text Box limit count.
var origCnt = 8;
alert("This is a test");
$('#NeedDescriptionLimit').html(origCnt);
$('#NeedDescriptionText').keyup(function (e) {
var currentlen = $('#NeedDescriptionText').val().length;
if (currentlen <= origCnt) {
$('#NeedDescriptionLimit').html(origCnt - currentlen);
} else {
$(this).val($(this).val().substring(0, origCnt));
}
});
});
</script>
但它在ASP.NET应用程序上无法正常运行。我将alert()
放在代码中以测试jQuery是否正常工作,并且我在打开页面时收到警报,但字符计数根本不起作用。
你能告诉我为什么会这样吗?
由于
答案 0 :(得分:1)
一个选项:
将ClientIDMode =“static”添加到文本框
或替换它:
$('#NeedDescriptionText')
用这个
$("<%= NeedDescriptionText.ClientID %>")
通过将每个父命名容器的ID值与控件的ID值连接来生成ClientID值。在呈现控件的多个实例的数据绑定方案中,将在控件的ID值前插入递增值。每个段由下划线字符(_)分隔。