


Explication détaillée du comportement étrange de l'attribut maxlength dans les compétences textarea_javascript
HTML5 a apporté de nombreux changements aux formulaires, comme maxlength, dont nous allons parler aujourd'hui. Cet attribut peut limiter le nombre maximum de caractères saisis dans la zone de saisie. Ce qui est plus pratique, c'est que le contenu collé peut également. être automatiquement tronqué en fonction du nombre de caractères.
J'ai récemment reçu une demande visant à limiter la saisie des utilisateurs à un maximum de 600 caractères (les caractères chinois et les lettres ne sont pas distingués), et le contenu collé doit également être automatiquement tronqué. Après la saisie de 600 caractères, la saisie ne peut pas être effectuée.
La première chose à laquelle j'ai pensé était maxlength, qui répond essentiellement aux besoins, mais il y a quand même des comportements bizarres.
Regardez le code ci-dessous :
<textarea name="text" id="text" maxlength="600"></textarea> <p><span id="already"></span>/<span>600</span></p> text.oninput = function() { already.textContent = text.value.length; }
Le code ci-dessus limite le nombre de caractères saisis à 600 et surveille la saisie de l'utilisateur via oninput n'est pas utilisé car keydown ne peut surveiller que la saisie au clavier de l'utilisateur et n'a aucune réponse au collage. . . oninput peut le faire.
À ce stade, après avoir saisi directement 600 mots, vous ne pouvez plus en supprimer et en saisir à nouveau, et les performances seront normales. Ce qui est étrange, c'est que si vous collez beaucoup de texte dans une zone de texte, il sera automatiquement tronqué en raison de l'existence de maxlength. À ce moment-là, il y a exactement 600 caractères dans la zone de texte. puis essayez à nouveau de saisir, vous trouverez :
Putain de merde, je ne sais pas taper ! ! ! Supprimez-en davantage et vous pouvez continuer à taper, mais ! ! ! Lorsque j’ai saisi moins de 600 caractères, je n’ai soudainement plus pu saisir ! ! !
Cela se produit sous Chrome et sur ma machine Android. . La raison n'est pas encore connue. Après avoir testé l'entrée, cette situation ne se produira pas, et si la valeur de l'attribut maxlength est plus petite, cette situation ne se produira pas, comme 10. . .
Dans ce cas, maxlength n'est pas fiable. Écrivez simplement plus de code vous-même. Puisque oninput est si flexible, utilisez-le.
Modifiez le code, supprimez l'attribut maxlength de textarea et utilisez input pour surveiller la valeur de textarea Si elle dépasse 600, elle sera automatiquement tronquée, créant l'illusion que la saisie est impossible.
text.oninput = function() { if(text.value.length >= 600) { text.value = text.value.substr(0,600); } already.textContent = text.value.length; }
Si vous n'êtes pas inquiet, vous pouvez continuer à surveiller l'événement keydown et empêcher l'événement par défaut après avoir saisi plus de 600 caractères. Cependant, il existe plusieurs touches qui ne peuvent pas être interdites : supprimer le retour arrière et le retour chariot :
.text.onkeydown = function() { if(text.value.length >= 600) { // 删除:46 退格:8 回车:13 if (!(e.which == '46' || e.which == '8' || e.which == '13')) { e.preventDefault(); } } }
IE8 et versions antérieures ne prennent pas en charge l'attribut maxlength ni oninput, mais ils ont une méthode plus puissante : onpropertychange.
Ce qui suit explique comment textarea implémente l'attribut maxlength à une extrémité du code
<script language="javascript" type="text/javascript"> function textlen(x,y){ var thelength = x.value.length; window.status=thelength+' of '+y+' maximum characters.'; } function maxtext(x,y){ tempstr = x.value if(tempstr.length>y){ x.value = tempstr.substring(0,y); } textlen(x,y); } </script> <form name="myform"> <textarea name="mytextarea" cols="45" rows="3" wrap="virtual" onkeypress="return(this.value.length<20)" onkeydown="textlen(this,20)" onkeyup="textlen(this,20)" onblur="maxtext(this,20)"> </textarea> </form>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...
