Je veux compter les caractères dans une zone de texte, alors je viens de faire:
<textarea id="field" onkeyup="countChar(this)"></textarea>
function countChar(val){
var len = val.value.length;
if (len >= 500) {
val.value = val.value.substring(0, 500);
} else {
$('#charNum').text(500 - len);
}
};
Quel est le problème avec mon morceau de code? Ça ne marche pas! Eh bien, c'était une écriture pour débutant, j'ai besoin d'aide.
Réponses:
Quelles erreurs voyez-vous dans le navigateur? Je peux comprendre pourquoi votre code ne fonctionne pas si ce que vous avez publié était incomplet, mais sans savoir que je ne peux pas le savoir avec certitude.
... fonctionne bien pour moi.
Edit: Vous devriez probablement effacer le charNum div, ou écrire quelque chose, s'ils sont au-dessus de la limite.
la source
Version améliorée basée sur la fonction de Caterham :
la source
⚠️ La solution acceptée est défectueuse.
Voici deux scénarios dans lesquels l'
keyup
événement ne sera pas déclenché:Utilisez
input
plutôt l'événement HTML5 pour une solution plus robuste:JavaScript ( démo ):
Et si vous voulez absolument utiliser jQuery:
la source
input
événement. MerciÉchantillon HTML, utilisé partout où j'ai besoin d'un compteur, remarquez la pertinence des identifiants de zone de texte et de la deuxième plage:
id="post"
<->id="rem_post"
et le titre de la plage qui contient la quantité de caractères souhaitée de chaque zone de texte particulièreLa fonction JavaScript, généralement placée avant
</body>
dans mon fichier de modèle, nécessite jQueryla source
CA marchait bien pour moi.
la source
substring()
doit devenirsubstr()
.Exemple: jsfiddle.net/xqyWV
la source
Eh bien, ce n'est pas si différent de ce qui a été dit, mais cela fonctionne très bien dans tous les navigateurs.
L'idée est de supprimer tout texte qui dépasse la longueur définie.
Le code HTMl serait:
la source
HTML
jQuery
la source
J'ai fait une combinaison de ce qui précède. Il permet l'arrêt de la saisie de texte, permet le retour arrière, et conserve le décompte, même en cas de retour arrière:
Code JavaScript:
HTML:
Merci à ces affiches avant moi !! J'espère que cela aide quelqu'un!
la source
J'ai créé mon propre plugin jQuery pour cette tâche, vous pouvez l'essayer ici:
http://jsfiddle.net/Sk8erPeter/8NF4r/
Vous pouvez créer des compteurs de caractères à la volée (ainsi que les compteurs de caractères restants), vous pouvez définir si vous voulez couper le texte, vous pouvez définir les textes de suffixe et vous pouvez également définir un format court et son séparateur.
Voici un exemple d'utilisation:
Voici le code du plugin:
la source
la source
Je me demandais comment faire la même chose et en prenant les idées de tout le monde ici, c'est ce que j'ai trouvé:
JsFiddle
la source
En outre, vous pouvez mettre votre propre identifiant d'élément ou classe au lieu de "h1" et l'événement de longueur compte vos caractères de chaîne de zone de texte ☻
la source
Votre code était un peu mélangé. Voici une version propre:
la source
Essaye celui-là.
la source
Une version plus générique afin que vous puissiez utiliser la fonction pour plus d'un champ.
la source
Utilisez ce qui suit pour ignorer l'utilisation de else et également ignorer le décompte négatif.
la source
Voici mon exemple. Souper simple
la source
Nous n'étions satisfaits d'aucune des solutions proposées.
Nous avons donc créé une solution complète de compteur de caractères pour JQuery, basée sur jquery-jeditable . C'est une
textarea
extension de plugin qui peut compter dans les deux sens, affiche un message personnalisé, limite le nombre de caractères et prend également en charge jquery-datatables .Vous pouvez le tester tout de suite sur JSFiddle .
Lien GitHub: https://github.com/HippotecLTD/realworld_jquery_jeditable_charcount
Démarrage rapide
Ajoutez ces lignes à votre HTML:
Puis:
la source
la source
Vous pouvez utiliser:
la source