2011-11-26 42 views
1

我有一個jQuery的函數,應該計算用戶在ASP.NET文本框中輸入的字符。此信息將顯示在:ASP.NET文本框 - jQuery計數器功能沒有被解僱

<span ID="remaining" class="label">160 characters remaining</span> 
<span ID="messages" class="msgleft">1 message(s)</span> 

The jQUery function is shown below: 

<script type="text/javascript"> 
     $(document).ready(function() { 
      var $remaining = $('#remaining'), 
     $messages = $remaining.next(); 

      $('#messagetext').keyup(function() { 
       var chars = this.value.length, 
      messages = Math.ceil(chars/160), 
      remaining = messages * 160 - (chars % (messages * 160) || messages * 160); 

       $remaining.text(remaining + ' characters remaining'); 
       $messages.text(messages + ' message(s)'); 
      }); 
     }); 
</script> 

ASP.NET文本框的ID是messagetext,但jQuery函數/事件未被觸發。當我使用HTML文本區域時,它工作正常。任何想法 ?

回答

2

試試這個:

//.net dynamic ClientID 
    $('#<% = messagetext.ClientID %>').keyup(function() { 
      var chars = this.value.length, 
     messages = Math.ceil(chars/160), 
     remaining = messages * 160 - (chars % (messages * 160) || messages * 160); 

      $remaining.text(remaining + ' characters remaining'); 
      $messages.text(messages + ' message(s)'); 
     }); 

//jquery input id wildcard selector 
    $("input:[id*=messagetext]").keyup(function() { 
      var chars = this.value.length, 
     messages = Math.ceil(chars/160), 
     remaining = messages * 160 - (chars % (messages * 160) || messages * 160); 

      $remaining.text(remaining + ' characters remaining'); 
      $messages.text(messages + ' message(s)'); 
     }); 
+0

謝謝里克,第一個選項工作得很好。我非常感謝你的幫助。 – Ramsey

+0

太棒了,隨時將其標記爲正確的答案。 –

0

謝謝合作。我不得不做一個小小的改變:

$("[id$=messagetxt]").keyup(function() { 
     var chars = this.value.length, 
    messages = Math.ceil(chars/160), 
    remaining = messages * 160 - (chars % (messages * 160) || messages * 160); 
     $('input[id=remaining]').val(remaining + ' characters remaining'); 
     $('input[id=messages]').val(messages + ' message(s)'); 
    });