页面加载时jQuery textarea字符倒计时

我正在使用jQuery函数在textarea字段下为我们网站的用户生成字符倒计时(X个字符剩余)。 我的表单长达几页(有点像向导),用户通常会在整个页面中前进和后退。 当我返回一步并重新加载已经完成的页面时,我的角色倒计时显示“剩余3000个字符”。 它不计算页面加载时的字符数。 如果用户返回表单,我希望触发该函数并计算已经输入到textarea字段中的字符数。

# The jQuery Function $(document).ready(function () { $('textarea').on("load propertychange keyup input paste", function () { var limit = $(this).data("limit"); var remainingChars = limit - $(this).val().length; if (remainingChars <= 0) { $(this).val($(this).val().substring(0, limit)); } $(this).closest('div').find(".countdown").text(remainingChars<=0?0:remainingChars); }); }); # HTML  3000 Characters Remaining 

我觉得你很亲密。 我对您的代码进行了细微更改,下面给出了工作解决方案,

 $(document).ready(function () { $('textarea').val('some text'); $('textarea').on("load propertychange keyup input paste", function () { var limit = $(this).data("limit"); var remainingChars = limit - $(this).val().length; if (remainingChars <= 0) { $(this).val($(this).val().substring(0, limit)); } $(".countdown").text(remainingChars<=0?0:remainingChars); }); $('textarea').trigger('load'); }); 
   3000 Characters Remaining 

你可以有一个触发器:

 $('textarea').trigger('keyup'); 

的jsfiddle

在您的文档就绪function中添加:

 $('.countdown').text( function () { var limit = $(this).data("limit"); var remainingChars = limit - $(this).val().length; if (remainingChars <= 0) { $(this).val($(this).val().substring(0, limit)); } }); 

由于您正在重复内部函数,因此可以考虑将其从每个jquery语句中取出并在其中引用它

  Characters Remaining : 200