在APT.NET和jQuery中计算文本框左字符长度的问题

时间:2014-03-14 18:35:56

标签: c# javascript jquery asp.net

我在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是否正常工作,并且我在打开页面时收到警报,但字符计数根本不起作用。

你能告诉我为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:1)

一个选项:

将ClientIDMode =“static”添加到文本框

或替换它:

$('#NeedDescriptionText')

用这个

$("<%= NeedDescriptionText.ClientID %>")

ClientIDMode

  

通过将每个父命名容器的ID值与控件的ID值连接来生成ClientID值。在呈现控件的多个实例的数据绑定方案中,将在控件的ID值前插入递增值。每个段由下划线字符(_)分隔。