2013-05-16 27 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