TextArea est appelé champ de texte, également connu sous le nom de zone de texte, qui est un contrôle d'entrée de texte multi-lignes avec des barres de défilement, qui est souvent utilisée dans les formulaires de soumission de page Web. Contrairement à un contrôle de texte en zone de texte en ligne, il ne peut pas limiter le nombre de mots via la propriété MaxLength, et à cette fin, d'autres méthodes doivent être recherchées pour les limiter pour répondre aux exigences prédéfinies.
La pratique habituelle consiste à utiliser le langage #Script pour implémenter des limites d'entrée de mots sur les champs de texte textarea, ce qui est simple et pratique. Supposons que nous ayons une zone de texte TextArea avec ID TXTA1, nous pouvons limiter le nombre de mots d'entrée sur son clavier à 10 caractères (caractères chinois ou autres petits caractères d'angle):
<Script Language = "#" Type = "Text / Ecmascript"> Window.onload = function () {document.getElementById ('txta1'). onkeyDown = function () {if (this.value.length> = 10) event.returnvalue = false; }} </ script>Son principe est de surveiller la zone de texte du numéro d'identification spécifié en surveillant l'événement Keydown. On peut imaginer qu'il ne peut limiter l'entrée du clavier. Si l'utilisateur colle le texte dans le presse-papiers en cliquant avec le bouton droit sur la souris, il ne peut pas contrôler le nombre de mots.
Grâce à l'entrée du clavier, seulement 10 mots peuvent être entrés dans la zone de texte ci-dessus. Cependant, notre objectif n'a pas été atteint! Veuillez copier du texte avec désinvolture et essayez de le coller avec le bouton de souris droit pour voir ce qui se passe.
Vous pouvez trouver d'autres scripts JS comme les ci-dessus ci-dessus sur Internet. Peu importe leur excellente, leurs principes sont les mêmes. La surveillance de l'entrée de la zone de texte en fonctionnant des touches de clavier telles que Keydown, Keyup ou Keypress ne peut pas empêcher le clic droit de coller. Pour cette raison, si nous devons vraiment limiter le nombre de mots dans TextArea, nous devons ajouter une autre serrure à la page Web - désactiver le clic droit, qui nécessite sans aucun doute des frais généraux supplémentaires, et il peut également s'agir de quelque chose que les fabricants de pages Web peuvent ne pas être disposés à faire. En fait, il existe un moyen plus facile d'utiliser la propriété OnProperTyChange.
On peut être utilisé pour juger la valeur d'un élément prédéterminé. Lorsque la valeur de l'élément change, l'événement de jugement sera déclenché. Il ne se soucie que de la valeur de l'élément surveillé et évite la source de l'entrée, afin que nous puissions atteindre le but de limiter le nombre de mots de manière relativement idéale. Il appartient à la catégorie JS et peut être utilisé dans des représentants de zone de boîte à forme imbriquée. Voici les styles de code et d'effet. Vous pouvez tester l'entrée comme celle ci-dessus. Vous constaterez que cela atteint vraiment son objectif: quelle que soit la méthode que vous entrez, il ne peut entrer que 100 caractères (caractères chinois ou autres petits symboles de solution):
Code:
<textArea onProperTyChange = "if (value.length> 100) value = value.substr (0,100)" Cols = "60" name = "txta" rows = "8"> </ textarea>
Bien sûr, pour être plus sécurisé, le programme de script de fond qui traite les données du formulaire doit également vérifier à nouveau les données soumises. Si le nombre de mots dépasse le numéro prédéfini, il sera traité en conséquence, afin d'atteindre le but de limiter vraiment le nombre de mots. (sur)
Une autre méthode pour implémenter TextArea pour limiter le nombre de mots d'entrée (y compris le chinois, seuls 10 peuvent être entrés, et tous les codes ASCII peuvent être entrés)
<Script> Fonction Check () {var regc = / [^ - ~] + / g; var rege = // d + / g; var str = t1.value; if (regc.Test (str)) {t1.value = t1.value.substr (0,10); } if (rege.test (str)) {t1.value = t1.value.substr (0,20); }} nousIl y a une autre façon:
fonction textCounter (field, maxlimit) {if (field.value.length> maxlimit) {field.value = field.value.substring (0, maxlimit); } else {document.upbook.remlen.value = maxlimit - field.value.length; }}<TextArea name = Words Cols = 19 Rows = 5 class = input1 onProperTyChange = "TextCounter (upbook.words, 50)"> textarea> Nombre de mots restant: <entrée name = remlen Type = Text ID = "Remlen" style = 50 size = 3 maxLength = 3 ReadOnly>
fonction limitTextArea (champ) {maxlimit = 200; if (field.value.length> maxlimit) field.value = field.value.substring (0, maxlimit);}<TextArea cols = 50 lignes = 10 name = "comment" id = "commentarea" onkeydown = "limitTextArea (this)" onkeyup = "limitTexea (this)" onkeyPress = "limitTextArea (this)"> </ textarea>
title = "La largeur de TextArea doit moins de 300 caractères." Il invite à saisir le nombre maximum d'octets dans TextArea.
Par exemple:
<TextArea cols = 50 lignes = 10 name = "comment" id = "commentarea" onkeydown = "limitTextArea (this)" onkeyup = "limitTexea (this)" onkeyPress = "limitTextArea (this)"> </ textarea>