javascript éviter de copier/coller-delà de la limite de caractères dans le textarea
J'ai le code suivant (tiré de cette question) pour la définition d'une limite de caractères sur les textareas.
function maxLength(el) {
if (!("maxLength" in el)) {
var max = el.attributes.maxLength.value;
el.onkeypress = function () {
if (this.value.length >= max) return false;
};
}
}
var maxtext = document.getElementsByClassName("maxtext");
for (var i = 0; i < maxtext.length; i++) {
maxLength(maxtext[i]);
}
Et un exemple de mon code html pour textareas:
<textarea maxlength="150" class="maxtext"></textarea>
Tout cela fonctionne très bien sous Firefox et Chrome. Dans IE7+, il s'arrête-moi si je tape jusqu'à la limite, mais je suis alors en mesure de copier/coller du texte sans restriction.
Aucun moyen de modifier ce script pour éviter le copier/coller au-delà de la max limite de caractères?
- Ressemble à une copie de stackoverflow.com/questions/2190420/...
- double possible de Maxlength pour la zone de texte ne fonctionne pas sous IE. A aussi un lien dans la réponse à une solution d'activer JavaScript. IE7+ ne va pas arrêter de vous taper dans plus de caractères spécifiés par défaut comme
maxlength
est un standard HTML5 qui est pris en charge uniquement à partir de IE10+. - Pas vraiment. Vous ne pouvez détecter que quelque chose a été collé et la raccourcir si nécessaire. Voir MediaWiki est
byteLimit
jQuery plugion par exemple
Vous devez vous connecter pour publier un commentaire.
Écouter la
onpaste
événement. Une fois que l'événement se déclenche, saisir le texte à partir de la presse-papiers et de manipuler la façon dont vous le souhaitez.HTML
JAVASCRIPT
EXEMPLE
maxlength
propriété lors de la coller dans un champ de texte. La question ci-dessus est que IE7+ ne l'était pas. Vous ne devriez pas besoin d'écouter pour laonpaste
cas pour Chrome. Exécuter cet exemple dans Chrome: jsfiddle.net/4d0o2u1x Vous devriez noter que lesmaxlength
attribut en fait, il fonctionne comme vous le souhaitez.<div>
avec l'attributcontenteditable="true"
. Dans mon cas, il ne fonctionne que si je colle le plus de texte, puis appuyez sur les touches "Ctrl" de nouveau. Sinon, je peut coller et de soumettre le texte plus long. Quelqu'un a des idées?Vous pouvez écouter les
onchange
événement pour vérifier la longueur du contenu, si elle dépasse la limite puis soustraire.