2008-12-18 6 views
4

Quel est le meilleur moyen de limiter la quantité de texte qu'un utilisateur peut entrer dans un champ 'textarea' sur une page Web? L'application en question est ASP .NET, mais une réponse agnostique de la plate-forme est préférable. Je comprends qu'une certaine quantité de javascript est probablement nécessaire pour ce faire, car je ne souhaite pas vraiment effectuer le 'post' avec cette quantité de données si possible car ASP .NET a une limite supérieure à la taille de la demande qu'il servira (bien que je ne sais pas ce que c'est exactement).Quel est le meilleur moyen de limiter la quantité de texte pouvant être saisi dans une zone de texte?

Alors peut-être la vraie question est, quelle est la meilleure façon de le faire en javascript qui répond aux critères suivants:

travail -Doit aussi bien pour les utilisateurs de taper simplement des données et des données copier/paste'ing dans d'une autre source.

-Doit être aussi "conforme 508" que possible.

Répondre

6

utiliser un contrôle RegularExpressionValidator dans ASP.Net pour valider le numéro de caractère ainsi que la validation habituelle

+0

J'aime cette option car elle effectue automatiquement la validation côté serveur et côté client. –

+0

Yah J'aime cette option aussi pour la même raison. –

3

L'idée la plus conviviale me semble être une solution comme celle de Twitter. Fournir une indication visuelle que l'utilisateur a franchi le maximum mais ne le limite pas en tapant.

Quelle que soit Javascript que vous utilisez, vous devrez toujours valider à la fin du serveur. Les utilisateurs avec Javascript désactivé seront autrement en mesure de contourner votre limite.

2

Comme dit Javache, vous devrez toujours vérifier côté serveur. Nous avons utilisé le jQuery validator plugin qui a un support pour Max longueurs entre les tons d'autres choses ...

11
function limit(element, max_chars) 
{ 
    if(element.value.length > max_chars) 
     element.value = element.value.substr(0, max_chars); 
} 

Comme javascript, et ...

<textarea onkeyup="javascript:limit(this, 80)"></textarea> 

XHTML. Remplacez 80 par la limite désirée. C'est comme ça que je le fais quand même. Notez que cela empêchera l'utilisateur de taper au-delà de la limite dans la zone de texte, mais l'utilisateur peut toujours ignorer cela en utilisant son propre javascript. Pour être sûr, vous devez également vérifier avec votre langue côté serveur.

+0

En outre, ma méthode préférée de contourner la validation d'entrée hokey fonctionne ici aussi: pâte de souris! – recursive

+0

@recursive pas si le formulaire utilise également onblur = "limit (this, 80)" – Piskvor

1

Je l'utilise, où la limite est un must. Il fournit également à l'utilisateur le nombre de caractères restants.

function CountLength(vControl) 
    { 
     var strValue = vControl.value; 
     var vMax = 480; 
     var vLeft = vMax - strValue.length; 
     if (vLeft < 0) 
     { 
      vLeft = 0; 
     } 
     var vMessage = returnObjById('TextCounter'); 
     if (document.all) 
     { 
      vMessage.innerText = vLeft + ' characters remaining.'; 
     } 
     else 
     { 
      vMessage.textContent = vLeft + ' characters remaining.'; 
     } 
     if (vLeft == 0) 
     { 
      vControl.value = vControl.value.substring(0, vMax); 
     } 
    } 
+0

La seule chose dont je m'inquiéterais avec l'indicateur visuel est la façon dont '508 conforme' serait. Que ferait un lecteur d'écran avec ça? –

+0

Je ne connais pas trop les lecteurs d'écran. Je suppose que s'il n'y a pas de retour, le lecteur d'écran lira toujours la source comme 480 caractères restants. Comment font-ils face à ajax je me demande? – plntxt

0

jQuery fournit également des options ici. Options, options et options

Questions connexes