Comment limiter le nombre maximal de caractères pouvant être entrés dans un code HTML <textarea>
? Je suis à la recherche d'une solution cross-browser.Longueur maximale pour le code HTML <textarea>
Répondre
La balise TEXTAREA
ne dispose pas d'un attribut MAXLENGTH
la façon dont une balise INPUT
fait, du moins pas dans la plupart des navigateurs standard. Une façon très simple et efficace pour limiter le nombre de caractères qui peuvent être tapé dans une balise TEXTAREA
est:
<textarea onKeyPress="return (this.value.length < 50);"></textarea>
Note:onKeyPress
, va empêcher toute pression sur le bouton, tout boutony compris la touche de retour arrière. Cela fonctionne parce que l'expression booléenne compare la longueur du champ avant que le nouveau caractère soit ajouté à la longueur maximum que vous voulez (50 dans cet exemple, utilisez le vôtre ici), et retourne vrai s'il y a de la place pour un de plus, false
sinon. Renvoyer false à partir de la plupart des événements annule l'action par défaut. Ainsi, si la longueur actuelle est déjà 50 (ou plus), le gestionnaire renvoie false, l'action KeyPress
est annulée et le caractère n'est pas ajouté.
Une mouche dans la pommade est la possibilité de coller dans un TEXTAREA
, qui ne provoque pas l'événement KeyPress
au feu, contourner ce contrôle. Internet Explorer 5+ contient un événement onPaste
dont le gestionnaire peut contenir la vérification . Cependant, notez que vous devez également prendre en compte combien de caractères attendent dans le presse-papiers pour savoir si le total va à vous dépasser ou non. Heureusement, IE contient également un objet du presse-papiers à partir de l'objet fenêtre. 1 Ainsi:
<textarea onKeyPress="return (this.value.length < 50);"
onPaste="return ((this.value.length +
window.clipboardData.getData('Text').length) < 50);"></textarea>
Encore une fois, l'événement onPaste
et clipboardData
objet sont IE 5+ uniquement. Pour une solution multi-navigateur, il vous suffira d'utiliser un gestionnaire OnChange
ou OnBlur
pour vérifier la longueur et la gérer comme vous le souhaitez (tronquer la valeur en silence, notifier l'utilisateur, etc.). Malheureusement, ceci n'attrape pas l'erreur comme cela se produit, seulement lorsque l'utilisateur tente de quitter le terrain, ce qui n'est pas tout à fait aussi amical.
En outre, il y a une autre façon ici, y compris un script terminé, vous pouvez inclure dans votre page:
http://cf-bill.blogspot.com/2005/05/textarea-maxlength-revisited.html
HTML5 permet désormais maxlength
attribute on <textarea>
.
Il est supporté par tous les navigateurs sauf IE < = 9 et iOS Safari 8.4. Voir support table on caniuse.com.
@erdomester Il fonctionne sur les navigateurs pris en charge. Vous pouvez tester dans le lien w3c que j'ai fourni. – indusBull
Je l'ai essayé et cela fonctionne même si j'ai utilisé maxlength = "500px". Mais le lien que vous avez fourni était inactif quand j'ai posté ce commentaire et la page qui était affichée était (je suppose) montrant d'autres attributs que celui montré maintenant. – erdomester
Ce lien n'est pas au W3C, c'est W3Schools, qui est connu pour sortir des informations incorrectes. – Toby
$(function(){
$("#id").keypress(function() {
var maxlen = 100;
if ($(this).val().length > maxlen) {
return false;
}
})
});
Référence Set maxlength in Html Textarea
- 1. CString longueur maximale
- 2. Longueur maximale du tampon pour sendto?
- 3. Nom d'utilisateur Windows longueur maximale
- 4. Longueur maximale de [NSXMLNode stringValue]
- 5. l'attribut onclick de longueur maximale dans ie
- 6. Longueur maximale des fragments d'URL (hachage)
- 7. JSON service web longueur maximale du contenu?
- 8. Excel Commentaires - Longueur maximale en 2003
- 9. PHP et MYSQL longueur variable maximale?
- 10. Comment sortir le code HTML du bloc JSP <%! ... %>?
- 11. Limitation du navigateur avec la longueur de page maximale
- 12. éditeur HTML WYSIWYG pour le code php
- 13. Quelle est la longueur maximale d'un SID au format SDDL
- 14. CEdit contrôle la longueur maximale? (en caractères qu'il peut afficher)
- 15. Regex look-behind sans longueur maximale évidente en Java
- 16. Valeur maximale en fonction de la taille de la longueur et de la longueur en .NET
- 17. Taille maximale de l'index pour le tableau
- 18. Contrôle d'entrée HTML largeur maximale disponible?
- 19. Tinymce - insérer le code html
- 20. Améliorer le code pour le menu déroulant (HTML/CSS/JavaScript)
- 21. En C#, comment déterminer la longueur maximale définie par XSD pour un élément
- 22. Existe-t-il une longueur maximale pour les requêtes XPath dans MSXML?
- 23. Existe-t-il une longueur maximale pour userPrincipalName dans Active Directory?
- 24. Quelle est la longueur maximale autorisée pour la propriété window.returnValue? (JavaScript)
- 25. Définition de la longueur maximale pour chaque ligne d'une texbox multiligne
- 26. Que fait le paramètre Longueur mySQL pour différents types?
- 27. Extension de Firefox pour modifier le code HTML
- 28. TextBlock pour afficher le code HTML dans WPF
- 29. Comment afficher le code HTML <FORM> en tant qu'élément en ligne?
- 30. Comment rendre le contenu de <pre><code></code></pre> correctement rendu dans IE7?
Notez que la fonction onKeyPress écrit ci-dessus empêchera tout texte d'être entré dans la zone de texte, une fois la limite de caractères est touché - pas de caractères peuvent être supprimés. Un extrait plus robuste permettrait à l'utilisateur d'atteindre la limite maximale, puis de revenir en arrière pour supprimer les caractères afin d'obtenir le texte sous la limite. – shek
Peut-être que c'est juste moi et ma mauvaise arithmétique, mais j'ai l'impression que lors de l'utilisation de nouvelles lignes dans les textareas, IE et FF se comportent différemment de Chrome en ce qui concerne 'maxlength'. Cela a à voir avec le problème '\ r \ n' vs' \ n' (quand votre texte contient des retours à la ligne) ... Certainement, 'maxlength' ne semble pas fonctionner de manière cross-browser-ish sous Windows d'après mon expérience. .. Mais rien de nouveau ici, juste le même vieux buggy HTML/JS ... – user2173353