jQuery textarea compte à rebours de caractères au chargement de la page

J’utilise une fonction jQuery pour générer un compte à rebours de caractère sous un champ textarea pour les utilisateurs de notre site (X caractères restants). Mon formulaire comporte plusieurs pages (un peu comme un assistant) et les utilisateurs vont et viennent tout au long des pages. Lorsque je reviens sur une étape et que je recharge une page déjà terminée, le compte à rebours de mon personnage affiche “3000 caractères restants”. Cela ne compte pas le nombre de caractères au chargement de la page. Si un utilisateur revient dans les formulaires, je souhaite que la fonction soit déclenchée et compte le nombre de caractères déjà saisis dans le champ 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 

Je pense que tu es très proche. J’ai apporté des modifications mineures à votre code et la solution de travail est donnée ci-dessous,

 $(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 

Vous pouvez avoir un déclencheur comme:

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

jsfiddle

Dans votre fonction de préparation de document, ajoutez simplement:

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

Puisque vous répétez la fonction inside, vous pouvez envisager de la retirer de chaque instruction jquery et de vous y reporter à l'intérieur.

  Characters Remaining : 200