2013-05-16 25 views
0

我有一個文本區域,在那裏我做一個倒計時的.keyup()但雖然它做什麼,它應該是讓用戶相信,有ID 1個字符左輸入,但文本的長度面積已達到極限。這裏是我的代碼:字計數器問題

<script> 
    var w_limit = 3000; 
    $(document).ready(function(){ 
     $('#comment').keyup(function(e) { 
      el = $(this); 
      if(el.val().length >= w_limit){ 
       el.val(el.val().substr(0, w_limit)); 
      } else {      
       $("#word-count").text(w_limit-el.val().length + ' characters left'); 
      } 
     }); 
    }); 
</script> 
+0

你真的應該保存'el.val() '一次並重新使用它(直到你設置它並需要再次獲取它)。以及用'var'聲明'el'。您還在'$(document).ready'部分中拼寫了'function'部分 – Ian

+0

您的代碼'fucntion'中存在拼寫錯誤。除此之外,它在這裏http://jsfiddle.net/XP4vp/。 – undefined

+1

@undefined它會一直工作到你到達最後一個字符,那麼它永遠不會顯示「0個字符左側」 - 它會保持在1.這是因爲'if' /'else' – Ian

回答

0
從錯別字

除此之外,你需要總是運行$("#word-count").text(stuff);部分。這裏的工作就沒有else

var w_limit = 20; 
$(document).ready(function() { 
    $('#comment').keyup(function (e) { 
     var el = $(this), 
      val = el.val(); 
     if (val.length >= w_limit){ 
      el.val(val.substr(0, w_limit)); 
     } 
     $("#word-count").text(w_limit - el.val().length + ' characters left'); 
    }); 
}); 

DEMO:http://jsfiddle.net/eHstm/

(當然,我用於測試目的較低w_limit號)

+1

謝謝!我不知道我怎麼沒有意識到這一點。 – LouieV